[英]combine two xml_docs C# xmlDocument
我一直在使用以下SO, 如何在C#中合並兩個XmlDocuments ,以嘗試將兩個示例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>
我正在使用此代碼片段將其合並到一個文件中,但是該過程實際上並未將它們組合在一起。 我對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);
無濟於事,任何建議將不勝感激。
尚不清楚您需要執行哪些合並操作-但是,如果您只需要復制根節點的子元素,那么使用LINQ to XML真的很簡單:
XDocument doc1 = XDocument.Load("test1.xml");
XDocument doc2 = XDocument.Load("test2.xml");
doc1.Root.Add(doc2.Root.Elements());
doc1.Save("test3.xml");
不過,這不會執行任何實際的合並 -如果兩個文件中的ID相同,則結果中將同時包含兩個元素,而不是一個合並的元素。
就個人而言,我總是更喜歡使用LINQ to XML而不是舊的XmlDocument
API-我強烈建議您在有機會的情況下使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.