我有两个需要合并的xml文件。
Test1.xml在
之下<ProfileSearchResponse xmlns="xxxRestServices" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Profile>
<Category>
<a>Test1 string</a>
<b>Test3 string</b>
</Category>
<Chapters>
<Chapter>
<Name>bi weekly Update</Name>
</Chapter>
</Chapters>
<Disclaimer>"The purpose of the Profiles is xxxxxx </Disclaimer>
<RelatedProfiles>Blah blah testing this </RelatedProfiles>
</Profile>
</ProfileSearchResponse>
Test2.xml位于
之下<ProfileSearchResponse xmlns="xxxRestServices" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Profile>
<Chapters>
<Chapter>
<Name>Previous bi weekly Updates</Name>
</Chapter>
</Chapters>
<Disclaimer>"The purpose of the Profiles is xxxxxx </Disclaimer>
</Profile>
</ProfileSearchResponse>
这是预期的输出。
<ProfileSearchResponse xmlns="xxxRestServices" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Profile>
<Category">
<a>Test1 string</a>
<b>Test3 string</b>
</Category>
<Chapters>
<Chapter>
<Name>bi weekly Update</Name>
</Chapter>
<Chapter>
<Name>Previous bi weekly Updates</Name>
</Chapter>
</Chapters>
<Disclaimer>"The purpose of the Profiles is xxxxxx </Disclaimer>
<RelatedProfiles>Blah blah testing this </RelatedProfiles>
</Profile>
</ProfileSearchResponse>
我们正在尝试从Test2.xml中获取“Chapter”节点并将其附加到Test1.xml。 这是我写的C#程序的一部分。
XmlDocument document1 = new XmlDocument();
XmlDocument document2 = new XmlDocument();
document1.Load(@"C:\test1.xml");
document2.Load(@"C:\test2.xml");
XmlNode myNode = document2.DocumentElement.SelectSingleNode("//Chapter");
document1.DocumentElement.AppendChild(myNode);
我不确定为什么myNode为null。我不太确定如何附加节点。任何帮助表示赞赏。
由于 MR
答案 0 :(得分:0)
我不确定为什么myNode为空
您忘记使用XmlNamespace xxxRestServices
XmlDocument document2 = new XmlDocument();
document2.Load(@"d:\temp\a.txt");
XmlNamespaceManager mgr = new XmlNamespaceManager(document2.NameTable);
mgr.AddNamespace("ns", "xxxRestServices");
XmlNode myNode = document2.DocumentElement.SelectSingleNode("//ns:Chapter",mgr);