web-dev-qa-db-fra.com

Obtenir le nom de l'élément dans XPATH

Si j'ai sélectionné un élément à l'aide de XPATH, comment puis-je obtenir son nom?
Je veux dire quelque chose comme text() fonction dans //element/[@id=elid]/text().

25
RYN

Utilisez name() . (Trouvez des documents pour les nouvelles versions de la langue XPath ici .)

Voici des versions modifiées de votre exemple:

Fonctionne uniquement dans XPath 2.0:

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

Fonctionne dans XPath 1.0 et 2.0:

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

Vous pouvez également utiliser local-name() qui retourne la partie locale du nom développé (sans aucun préfixe d'espace de noms).

51
Daniel Haley

L'arbre des noms de balises peut également être obtenu avec

echo "du //Element/*" | xmllint --Shell response-02.xml
Ele1
    id
    name
    Nested1
        id
        name
Ele2
2
Luis Muñoz