我正在尝试使用XPath(Java)根据以特定值开头的未知属性获取所有未知节点。由于某种原因,它没有返回包含名为value
的属性的节点。我还在www.freeformatter.com/xpath-tester.html上进行了测试,并得到了相同的结果。这是我的代码:
XML:
<div>
<object data="/v1/assets/mp4Video-1" type="video/mp4">
<param name="webmSource" value="/v1/assets/webmVideo-1" type="REF"/>
</object>
</div>
XPath 表达式:
//*[starts-with(@*, '/v1/assets/')]
结果 - 返回<object>
,但不返回<param>
。
现在,如果我将XPath表达式更改为//*[starts-with(@*, '/v1/assets/') or starts-with(@value, '/v1/assets/')]
,它会按预期返回两者。
我想知道的是,value
属性有什么特殊之处,使得XPath无法正确识别它作为属性,或者当value
属性包含我查询的值时,无法返回该元素?