【发布时间】:2016-08-28 15:21:42
【问题描述】:
我一直在使用以下 SO,How to merge two XmlDocuments in C#,尝试将两个示例 xml 文件合并为一个。基本上这里是我的两个 xml 文件
test1.xml:
<root>
<Name>
<id>4</id>
<First_name>Tony</First_name>
<last_name>""</last_name>
</Name>
<Name>
<id>6</id>
<First_name>Donny</First_name>
<last_name>Test</last_name>
<middle_name>Ward</middle_name>
</Name>
</root>
还有test2.xml
<root>
<Name>
<id>1</id>
<First_name>Nick</First_name>
<last_name>Tester</last_name>
</Name>
<Name>
<id>2</id>
<First_name>Lauren</First_name>
<last_name>MsTester</last_name>
</Name>
</root>
我正在使用此代码 sn-p 将其合并到一个文件中,但该过程实际上并未将它们合并。我对 xmlDocument 类知之甚少,但仍在尝试正确解决此问题。
代码:
XmlDocument xmlreader1 = new XmlDocument();
xmlreader1.Load("C:\\Temp\\test1.xml");
XmlDocument xmlreader2 = new XmlDocument();
xmlreader2.Load("C:\\Temp\\test2.xml");
foreach (XmlNode node in xmlreader2.DocumentElement.ChildNodes)
{
XmlNode importedDocument = xmlreader1.ImportNode(node, true);
xmlreader1.DocumentElement.AppendChild(importedDocument);
}
我相信从 test2.xml 获取根的每个子节点(在本例中为 <name>)并将其附加到 test1.xml 是正确的。我也尝试过:
XmlNode importedDocument = xmlreader1.ImportNode(xmlreader2.DocumentElement, true);
xmlreader1.DocumentElement.AppendChild(importedDocument);
再次无济于事,任何建议将不胜感激。
【问题讨论】:
-
您是否特别需要使用
XmlDocument? LINQ to XML 通常更易于使用。此外,请更加注意格式化您的帖子 - 查看预览,并且仅在问题看起来像您想要回答时才提交。