有没有办法构建一个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>
现在我可以构建一个查找以下内容的查询:
查找 Type “Book”的所有 Item 节点,其中第二个 Param 节点的值为“约翰”。 所以我想找到作者名字的所有书籍都是“约翰”。
请注意,我使用的是.NET XPathDocument。
答案 0 :(得分:5)
只有作为书籍的物品的要求怎么样?
试试这个:
/Item[@Type='Book'][Param[2][@Value='John']]
答案 1 :(得分:2)
请注意,我使用的是.NET XPathDocument。
仅限于XPath V1。
您可以在谓词中包含(相对和绝对)路径。如下所示:
//Item[@Type='Book'][./Param[2][@Value = 'John']]
(我会尽量避免使用“//
”,因为它需要搜索整个DOM,但如果没有更多的上下文,则无法提供更好的轴。)
答案 2 :(得分:0)
表达式为:
//Item/Param[2][@Value='John']