1

我需要得到不同的值 //name() 没有 distinct-values(//*/name())

我试过这样做,但它的作用不大。

//*/name()[.!=//preceding-sibling::*]

我该如何修复它?

4

1 回答 1

4

使用XPath 1.0, 获取不同的值

对于名称属性,

/*/*[not(@name = preceding::*/@name)]

对于节点名称,

/*/*[not(name() = preceding::*/name())]

我的示例 XML:

<?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>
于 2013-04-08T19:55:42.617 回答