合并两个System.Xml.XmlDocuments

时间:2013-06-14 16:18:18

标签: xml vb.net

.NET中的

我有两个System.Xml.XMlDocument对象,第一个看起来像这样

<NewDataSet>
 <Table>
  <Table1>
    <Name>Aname</Name>
  <Table1>
  <Table2>
    <Val>value</Value>
  </Table2>
 </Table>
<NewDataSet>

我有第二个XML文档,看起来像这样

<HeaderValues>
   <yearValueH>yearValueH</yearValueH>
   <CalendarEventH>CalendarEventH</CalendarEventH>
  </HeaderValues>

我希望在</Table>标记之后将第二个文档合并到第一个文档中。到目前为止,任何尝试这样做都会导致许多奇怪的错误,是否有人有任何建议? (最好在VB.NET中回答,但C#也可以)。

我尝试过的一些事情(在VB.NET中)包括(对于所有元素):

Dim yearValueH As XmlNode = xmlA.CreateNode("element","yearValueH","")
yearValueH.InnerText= xmlB.GetElementsByTagName("yearValueH")(0).InnerText

2 个答案:

答案 0 :(得分:2)

由于您需要XmlDocument中的解决方案,请尝试以下操作:

        string xml1 = "<NewDataSet><Table><Table1><Name>Aname</Name></Table1><Table2><Value>value</Value></Table2></Table></NewDataSet>";
        string xml2 = "<HeaderValues><yearValueH>yearValueH</yearValueH><CalendarEventH>CalendarEventH</CalendarEventH></HeaderValues>";

        var doc1 = new XmlDocument();
        doc1.LoadXml(xml1);

        var doc2 = new XmlDocument();
        doc2.LoadXml(xml2);


        XmlNode newNode = doc1.ImportNode(doc2.DocumentElement, true);
        doc1.DocumentElement.AppendChild(newNode);

然后您可以查看新文档:

        doc1.InnerXml

答案 1 :(得分:1)

您可以将.XDocument组件用于.Net。 关注this link