2013-07-25 133 views
0

我有一個包含一些XML字符串:插入XML到XML元素

<some> 
    <xml></xml> 
    <tags/> 

    <TheData/> 

    <more>asdf</more> 
    <of/> 
    <them></them> 
</some> 

代替<TheData/>我們可以有<TheData></TheData>或其他等價形式。

問題:

1:我怎樣才能確保XML確實包含TheData元素?

2:如何插入另一個XML字符串,HTML編碼的TheData

<mydata> 
    <name>John</name> 
    <address>New York City</address> 
</mydata> 

最終結果:

<some> 
    <xml></xml> 
    <tags/> 

    <TheData> 
    &lt;mydata&gt; 
     &lt;name&gt;John&lt;/name&gt; 
     &lt;address&gt;New York City&lt;/address&gt; 
    &lt;/mydata&gt; 
    </TheData> 

    <more>asdf</more> 
    <of/> 
    <them></them> 
</some> 

是否有快速的方法與例如要做到這一點其他的XML實例LINQ to XML?

+1

''和''是等同的。你真的不應該在乎哪一個。 –

+0

@DanielHilgarth你說得對,我不應該在意,無論使用哪一個,解決方案都應該可以工作。 –

+0

您應該閱讀[XDocument](http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx)和[XElement](http://msdn.microsoft.com /en-us/library/system.xml.linq.xelement.aspx) – Jonesopolis

回答

3

首先,你有你的XML加載到內存爲XDocument實例:

var doc = XDocument.Load(yourFilePath); 

然後,你可以回答你的問題:

1:我怎樣才能確保該XML確實包含一個空的 TheData元素?

var theData = doc.Root.Element("TheData"); 

if(theData != null && string.IsNullOrEmpty((string)theData)) 
{ 
    // document contains TheData element which is empty 
} 

2:我怎樣才能插入另一個XML字符串,HTML編碼TheData

theData.Value = @"<mydata> 
         <name>John</name> 
         <address>New York City</address> 
        </mydata>"; 

你不必在這裏操心XML編碼。 XElement班會照顧到這一點。

+0

我想你的意思是'!string.IsNullOrEmpty(theData.Value)'或'theData == null' – user1477388

+0

你打我吧 – valverij

+0

@ user1477388他'theData.Value'是空的,所以我認爲我的情況是正確的。 – MarcinJuraszek