选择具有特定值的节点

时间:2014-07-28 15:32:06

标签: 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>

1 个答案:

答案 0 :(得分:4)

您可以使用此XPath执行此操作:

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

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

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

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