2

我有一个带有一些节点的 XML 文档,例如

<node name="xxx" id="xxx">

我可以使用单个 XPath 表达式来获取其父节点也具有 atrtribute 的所有属性节点@id = 7吗?

4

3 回答 3

2

使用

//@*[not(name()='id') and ../@id = 7]

id这将选择其父级具有值为 number的属性的所有非 id 属性7。这将接受id='7'id=' 7 '

//@*[not(name()='id') and ../@id = '7']

id这将选择其父级具有值为 string的属性的所有非 id 属性'7'。这将接受id='7'但不id=' 7 '

于 2010-11-13T17:54:11.603 回答
1

不可以。您需要逐一定义要读出的属性。

/node[@id=7]/@name 

会得到name

/node[@id=7]/@id

会得到id

等等

于 2010-11-13T10:12:15.130 回答
1

这将选择所有值为 7 的id 属性节点:

//*/@id[. = '7']
于 2010-11-13T10:13:11.637 回答