Получение имени элемента в XPATH - PullRequest
25 голосов
/ 02 ноября 2011

Если я выбрал элемент, используя XPATH, как я могу получить его имя?
Я имею в виду что-то вроде text() функция в //element/[@id=elid]/text().

Ответы [ 2 ]

50 голосов
/ 02 ноября 2011

Использование name(). (Найти документы для новых версий языка XPath здесь .)

Вот измененные версии вашего примера:

Работает только в XPath 2.0:

//element/*[@id='elid']/name()

Работает в XPath 1.0 и 2.0:

name(//element/*[@id='elid'])

Вы также можете использовать local-name(), который возвращает локальную часть расширенного имени (без префикса пространства имен).

2 голосов
/ 26 июня 2015

Дерево имен тегов также можно получить с помощью

echo "du //Element/*" | xmllint --shell response-02.xml
Ele1
    id
    name
    Nested1
        id
        name
Ele2
...