0

有没有办法构建一个 XPath 查询,在某个位置找到一个节点并且具有某个属性值?

考虑以下示例 xml:

<Item Type="Book">
<!--1st Param node in a Book item is always the autors last name-->
<Param Value="Updike" />
<!--2nd Param node in a Book item is always the autors first name-->
<Param Value="John" />
<!--3rd Param node in a Book item is always the book title-->
<Param Value="Toward the End of Time" /></Item>

现在我可以构建一个查找以下内容的查询:

查找类型为“Book”的所有Item节点,其中 2nd Param节点的值为“John”。所以我想找到所有作者名字是“约翰”的书。

请注意,我使用的是 .NET XPathDocument。

4

3 回答 3

5

仅具有书籍的项目的要求如何?

试试这个:

/Item[@Type='Book'][Param[2][@Value='John']]
于 2009-06-03T16:23:26.013 回答
2

请注意,我使用的是 .NET XPathDocument。

所以仅限于 XPath V1。

您可以在谓词中包含(相对和绝对)路径。所以像:

//Item[@Type='Book'][./Param[2][@Value = 'John']]

(我会尽量避免“ //”,因为它需要搜索整个 DOM,但如果没有更多上下文就无法提供更好的轴。)

于 2009-06-03T15:30:35.053 回答
0

表达式将是:

//Item/Param[2][@Value='John']
于 2009-06-03T15:34:01.427 回答