如果属性名称具有命名空间,则XPath如何按属性名称选择节点

时间:2017-06-07 23:09:14

标签: xml xpath

我知道我可以使用

按属性名称选择节点
//*[@attribute]

但是,如果我的属性是bar:resource等命名空间,我该怎么做?

例如:

<foo:creator bar:resource="https://example/john">john</foo:creator>

1 个答案:

答案 0 :(得分:1)

几乎相同的东西:

//*[@bar:resource]

此XPath选择具有@bar:resource属性的所有节点。要使用它,您需要将名称空间uri和名称空间前缀(bar)传递到XML / XPath引擎/处理器。

或者你可以使用纯XPath(虽然我不推荐这个):

//*[@*[local-name() = 'resource' and namespace-uri() = 'bar_namespace_uri']]