我怎样才能在XML进一步导航,并在其中添加数据
-
23-08-2019 - |
题
我已加载的XmlDocument到内存中,创建新的XmlElement。现在,我想的XmlElement添加到路径/报告/节/主机,但我不知道怎么办。我可以添加它轻松以下XML的根节点,但我想不通我怎么能在XML浏览更深的层次,只是追加那里。在伪我试图做到这一点:
doc.SelectNodes( “/报告/部分/主机”)的appendChild(子根);
代码:
XmlDocument doc = new XmlDocument();
doc.Load("c:\\data.xml");
//host
XmlElement subRoot = doc.CreateElement("host");
//Name
XmlElement ElName = doc.CreateElement("name");
XmlText TxtName = doc.CreateTextNode("text text");
ElName.AppendChild(TxtName);
subRoot.AppendChild(ElName);
doc.DocumentElement.AppendChild(subRoot);
doc.Save("c:\\data.xml");
解决方案
尝试的SelectSingleNode代替的SelectNodes
XmlElement parent = (XmlElement)doc.SelectSingleNode("/report/section/hosts")
parent.AppendChild(subRoot);
其他提示
您几乎没有。尝试使用的SelectSingleNode代替:
XmlNode node = doc.SelectSingleNode("/report/section/hosts");
node.AppendChild(subRoot);
在SelectNodes方法返回节点的列表。 您应该使用的SelectSingleNode,而不是...
e.g。 (我的头顶部,在Visual Studio中没有测试)结果
doc.SelectSingleNode("/report/section/hosts").AppendChild(subRoot);
您需要得到您的文档到的XmlElement参考(根以外)追加到。有使用上XmlDocument的这样一些方法作为GetElementById
和SelectSingleNode
它以不同的方式为你做这个研究的味道。
这是说,在这方面整个API被普遍认为是一个有点痛苦,你有LINQ提供?
不隶属于 StackOverflow