我有类似于此的 XML 代码:
<BookStore xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Book>
<bookGenre>Fantasy</bookGenre>
<bookTitle>A Storm of Swords</bookTitle>
<authorInformation>
<authorId>12345</authorId>
<authorName>
<firstName>George</firstName>
<middleInitial>R.R.</middleInitial>
<lastName>Martin</lastName>
</authorName>
</authorInformation>
</Book>
<customer>
<customerData />
</customer>
</BookStore>
该<customer>
节点可能有也可能没有子节点,具体取决于用户输入。
我正在尝试使用 XmlDocument.SelectNodes 和 XPath 导航来选择<BookStore>
、<customer>
和包含在<customer>
.
几个小时以来,我一直在环顾四周并阅读有关 XPath 和 .SelectNodes 的信息,但似乎仍然没有完全理解它们是如何工作的。有人可以解释如何使用它们或我如何在我的情况下使用它们吗?如果还有其他方法可以解决我的问题,我也愿意接受!(我正在使用 C#)
编辑:这是我根据我阅读的内容所尝试的
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlStr);
XmlNode root = doc.DocumentElement;
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema");
nsmgr.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
XmlNodeList nodeList = root.SelectNodes("descendant::customer:child::Node");
doc.Save(Console.Out);