无论属性的命名空间如何(以及属性是否在没有命名空间),如何提取属性的值?
E.g。什么是从文档下面的所有中提取状态值属性的XPath:
<a status='foo'></a>
<a xmlns:x="foo-x" x:status='foo'></a>
<x:a xmlns:x="foo-x" status='foo'></x:a>
<a xmlns="foo-y" status='foo'></a>
XPath /*/@status
从上面的所有中获取值'foo',除了属性位于命名空间中的第二个(默认命名空间不适用于我认为的属性)所以在第四种情况下成功获取了值)。我可以在所有情况下使用XPath吗?
尝试/*/@[local-name()='status']
失败了:
net.sf.saxon.trans.XPathException: @ must be followed by a NodeTest
答案 0 :(得分:1)
在@
符号后,需要属性名称。您可以将*
用于任何:
/*/@*[local-name()='status']