将XML插入XML元素

时间:2013-07-25 17:00:26

标签: c# .net xml linq linq-to-xml

我有一个包含一些XML的字符串:

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

  <TheData/>

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

而不是<TheData/>我们可以拥有<TheData></TheData>或其他等效形式。

问题:

1:如何确保XML确实包含 TheData元素?

2:如何将另一个XML字符串 HTML编码插入TheData?其他XML的示例:

<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>

有没有快速的方法来做到这一点,例如LINQ to XML?

1 个答案:

答案 0 :(得分: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课程将负责这一点。