Xpath /查找以特定模式开头的所有属性

时间:2014-02-06 07:59:26

标签: xpath

我想找到属性的所有元素都以x开头。

例如,

<a xt="1"> text1 </a>
<a xu="2"> text2 </a>
<a text1="3"> text3 </a>

xpath会找到前两个元素,因为它包含名称分别为xtxu的属性。 <{1}}属性不以text1开头,为此我不会得到它。

我尝试使用x函数,但据我所知,它会找到值,而不是属性。

2 个答案:

答案 0 :(得分:2)

@*[starts-with(name(), 'x')]

答案 1 :(得分:0)

我会用:

//*[@*[starts-with(local-name(),'x')]]

与其他答案类似,但使用local-name()代替。这只会检查属性名称而不是命名空间前缀。

例如,如果您使用local-name(),则也会匹配以下内容,因为前缀以x开头......

<a xns:text1="3" xmlns:xns="xns"> text3 </a>

如果您使用local-name(),则不会匹配,因为xns:text1的本地名称为text1