C# 选择具有特定值的节点

C# 选择具有特定值的节点,c#,xml,xpath,C#,Xml,Xpath,我得到了一个web服务,我必须使用它将数据拉入表中。现在它会拉所有节点,但我只想拉带有Web的节点 在网上搜索时,我只能找到在有属性的情况下如何做到这一点的示例,而没有属性。这就是我目前所知道的,我似乎不知道下一步该怎么办- XmlNodeList records = root.SelectNodes("descendant::record[//@Origin=Web]"); 还审判了- XmlNodeList records = xmldoc.SelectNodes("/Results/Re

我得到了一个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"]
这意味着选择所有
origin
元素(不考虑层次结构),其中内部文本为
web

因此,您的声明现在变成:

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

您可以使用以下XPath完成此操作:

//origin[text()="web"]
这意味着选择所有
origin
元素(不考虑层次结构),其中内部文本为
web

因此,您的声明现在变成:

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

上面哪一个例子我应该使用它?不幸的是,这正是我所拥有的,并且由于某些原因它不起作用。不确定这是否有区别,但我在查看web服务时,它显示了如下来源-这会改变答案吗?@user3869708:好的,那么实际问题是您没有包含
web
origin
元素显然没有,我现在看到它显示为有不同的路线可以走吗?我应该使用上面的例子中的哪一个?不幸的是,这正是我所拥有的,并且由于某种原因它不起作用。不确定这是否有区别,但我查看web服务,它显示了这样的来源-这会改变答案吗?@user3869708:好的,那么实际的问题是您没有包含
web
来源
元素?显然不是,我现在看到它显示为有不同的路线可走吗?