C# XML读取-节点访问
嗨 如果我将上述内容作为xml结构的一部分,并且我希望找到一个标记,其中父标记有一个“Chemist Name”的标签,而其内部标记有一个John,Smith的标签,这样我就可以获得searchid,那么最好的方法是什么 有没有一种方法可以让我不去高效地循环遍历文档中的每个xml值,直接说 “给我一个节点,其父节点是化学家名称,其子节点的标签是john smith”C# XML读取-节点访问,c#,xml,C#,Xml,嗨 如果我将上述内容作为xml结构的一部分,并且我希望找到一个标记,其中父标记有一个“Chemist Name”的标签,而其内部标记有一个John,Smith的标签,这样我就可以获得searchid,那么最好的方法是什么 有没有一种方法可以让我不去高效地循环遍历文档中的每个xml值,直接说 “给我一个节点,其父节点是化学家名称,其子节点的标签是john smith” 感谢将XPath用于以下查询: <node label="Chemist Name"> <node la
感谢将XPath用于以下查询:
<node label="Chemist Name">
<node label="John,Smith" searchId="1122" />
</node>
你可以在C#中这样使用它:
其中
xml
是包含xml数据的字符串。如果要直接从光盘加载XML,请改为使用。使用XPath进行以下查询:
<node label="Chemist Name">
<node label="John,Smith" searchId="1122" />
</node>
你可以在C#中这样使用它:
其中
xml
是包含xml数据的字符串。如果要直接从光盘加载XML,请改用xpath。。你应该阅读更多关于,和。如果您遇到困难,请发回,我们可以提供帮助。xpath是解决此问题的方法。你应该阅读更多关于,和。如果您遇到困难,请发回,我们可以提供帮助。xml文档的节点在哪里?非常感谢您的帮助-我想这是一个我需要学习的方便工具。你会说它更有效还是这种方法也有开销?@ricki:如果你的XML文档很大,这不是最好的方法,因为XmlDocument
首先读取整个文件,然后应用XPath查询。如果您有一个巨大的XML文档,那么像XmlReader
这样的SAX解析器更合适。但总的来说,XPath是一种方法,如果你想找到一个节点,它就是为此而发明的。@Daniel Hilgarth-我用参数替换了名称,我得到了一个无效的令牌异常,我真的看不出我做错了什么-“//node[@label=Chemist Name]/node[@label=John,Smith]'有一个无效的令牌。”@ricki:属性值(化学家姓名和John,Smith)需要加引号。xml文档的节点在哪里?非常感谢-我想这是一个我需要学习的方便工具。你会说它更有效还是这种方法也有开销?@ricki:如果你的XML文档很大,这不是最好的方法,因为XmlDocument
首先读取整个文件,然后应用XPath查询。如果您有一个巨大的XML文档,那么像XmlReader
这样的SAX解析器更合适。但总的来说,XPath是一种方法,如果你想找到一个节点,它就是为此而发明的。@Daniel Hilgarth-我用参数替换了名称,我得到了一个无效的令牌异常,我真的看不出我做错了什么-“//node[@label=Chemist Name]/node[@label=John,Smith]'有一个无效的令牌。”@ricki:属性值(化学家姓名和John,Smith)需要加引号。
var doc = new XmlDocument();
doc.LoadXml(xml);
var node = doc.SelectSingleNode(
@"//node[@label = ""Chemist Name""]/node[@label = ""John,Smith""]");