我需要获得不同的值// name()而不使用distinct-values(// * / name())
我试过这样做,但它不起作用。
//*/name()[.!=//preceding-sibling::*]
我该如何修复它?
答案 0 :(得分:4)
使用 XPath 1.0
获取不同的值
对于name属性,
/*/*[not(@name = preceding::*/@name)]
对于节点名称,
/*/*[not(name() = preceding::*/name())]
<?xml version="1.0" encoding="UTF-8"?>
<root>
<friend1 name="abc"/>
<friend2 name="def"/>
<friend3 name="abc"/>
<friend1 name="abcd"/>
<friend5 name="abcd"/>
<friend6 name="xyz"/>
<friend8 name="789"/>
<friend0 name="pqr"/>
<friend9 name="lmn"/>
<friend2 name="lmn"/>
<friend5 name="123"/>
<friend7 name="456"/>
<friend12 name="789"/>
</root>