Мне нужно получить отдельные значения //имя() без различных значений(//*/имя())
Я пытался сделать так, но это не работает.
//*/name()[.!=//preceding-sibling::*]
Как я могу его отремонтировать?
Мне нужно получить отдельные значения //имя() без различных значений(//*/имя())
Я пытался сделать так, но это не работает.
//*/name()[.!=//preceding-sibling::*]
Как я могу его отремонтировать?
Использование XPath 1.0
для получения различных значений
Для атрибута имени
/*/*[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>