XML读取 - 节点访问

时间:2011-04-11 09:24:06

标签: c# xml

<node label="Chemist Name">
    <node label="John,Smith" searchId="1122" />
</node>

您好,

如果我将上述内容作为我的xml结构的一部分,并且我想找到一个标签,其中父标签为“Chemist Name”,其内部标签的标签为John,Smith,那么我可以得到searchid - 最好的方法是什么?

有没有办法可以,而不是无效地循环遍历我的文档中的每个xml值只是直接说

“让我的父母是化学家名字的节点,它的孩子有一个约翰史密斯的标签”

感谢

2 个答案:

答案 0 :(得分:3)

将XPath与以下查询一起使用:

//node[@label = "Chemist Name"]/node[@label = "John,Smith"]

您可以在C#中使用它:

var doc = new XmlDocument();
doc.LoadXml(xml);
var node = doc.SelectSingleNode(
        @"//node[@label = ""Chemist Name""]/node[@label = ""John,Smith""]");

其中xml是包含XML数据的字符串。如果要直接从光盘加载XML,请改用XmlDocument.Load()

答案 1 :(得分:0)

xpath是这样做的方法。您应该在XPathNavigatorxpath上阅读更多内容。如果您遇到困难,请回复,我们可以提供帮助。