c# - 选择具有特定值的节点

标签 c# xml xpath

我得到了一个 Web 服务,我必须使用它来将数据提取到表中。现在它会拉取所有节点,但我只想拉取带有 Web 的节点。

在网上搜索,我只能找到有关如何在有属性的情况下执行此操作的示例,而实际上没有。这是我到目前为止所拥有的,似乎无法弄清楚下一步该怎么做 -

XmlNodeList records = root.SelectNodes("descendant::record[//@Origin=Web]");

也试过了——

XmlNodeList records = xmldoc.SelectNodes("/Results/Record/Origin['=Web']");

编辑 - 我知道以上两种尝试都无法正常工作

编辑 2 - XML 是这样设置的 -

<results>
  <record>
    <name></name>
    <email></email>
    <origin></origin>
  </record>
</results>

最佳答案

您可以使用此 XPath 来完成:

//origin[text()="web"]

这意味着选择内部文本为 web 的所有 origin 元素(无论层次如何)。

所以,你的陈述现在变成了:

XmlNodeList records = xmldoc.SelectNodes("//origin[text()='web']");

关于c# - 选择具有特定值的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24998752/

相关文章:

java - 如何获取显示器下的元素:none div using htmlunit

c# - 无法安装windows服务

c# - 简单跨应用程序对象中的内存泄漏

C#初学者问题

xml - "parsing"在XML中的反义词

xml - XPath 按节点、子节点和子子节点条件选择节点

javascript - 使用 jquery/javascript 验证日期时间 asp net 文本框

php - 如何获取非常具体的 XML 元素的值...?

c++ - boost 属性 ptree : boost write_xml adding unicode 0x0 character in child element in xml file

xml - 如何使用Xquery和FLOWR来迭代并返回每个结果?