XPath:根据其他节点的值选择节点

时间:2014-11-26 14:30:48

标签: .net xml xpath

假设我有一个项目列表,每个项目都有自己的<id>元素。还有一个<primaryId>元素(外部提到的列表)指定这些项目中的哪一个是主要的&#39;。如何选择&#39; primary&#39; item&#39; <value>元素?是否可以在.Net中使用XPath?

以下示例中的结果应为<value>val2</value>

<root>
  <primaryId>2</primaryId>
  <items>
    <item>
      <id>1</id>
      <value>val1</value>
    </item>
    <item>
      <id>2</id>
      <value>val2</value>
    </item>
  </items>
</root>

2 个答案:

答案 0 :(得分:3)

XPath中的位置路径可以包含[]中的条件。

首先选择主要ID节点:

/root/primaryId

将其作为条件,将其与条件上下文中的id元素进行比较:

[id=/root/primaryId]

用它来过滤项目节点:

/root/items/item[id=/root/primaryId]

完整的表达方式:

/root/items/item[id=/root/primaryId]/value

答案 1 :(得分:-1)

<xsl:value-of select="/root/items/item[id=/root/primaryId]/value"/>