xpath
Rechercher des nœuds ayant un attribut spécifique
Recherche…
Syntaxe
- À l'intérieur d'un noeud spécifique
- / chemin d'accès à / element [nom_attribut_attribut]
- Partout dans le document
- //*[@Nom d'attribut]
- A l'intérieur d'un noeud spécifique avec une certaine valeur
- / chemin vers / element [@ nom_attribut = 'valeur de recherche']
- / chemin vers / element [@ nom_attribut = "valeur de recherche"]
- Partout dans le document avec une certaine valeur
- // * [@ attribute_name = 'recherche chaîne']
- // * [@ nom_attribut = "chaîne de recherche"]
Paramètres
Sélecteur | fonction |
---|---|
@Nom d'attribut | Il sélectionne la valeur d'attribut d'un noeud, s'il est présent |
Remarques
En utilisant [@attribute_name], nous pouvons sélectionner des noeuds qui ont l'attribut indépendamment de la valeur.
Nous pouvons utiliser n'importe quelle fonction ou combinaison de fonctions telles que les débuts avec et les minuscules, par exemple, avec ce sélecteur pour répondre à nos besoins.
Rechercher des nœuds avec un attribut spécifique
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[@name]
ou
//*[@name]
SORTIE
<CelestialObject name="Earth" type="planet" />
<CelestialObject name="Sun" type="star" />
Rechercher des nœuds avec une valeur d'attribut spécifique
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[@name='Sun']
ou
//*[@name='Sun']
SORTIE
<CelestialObject name="Sun" type="star" />
Recherche de noeuds par sous-chaîne correspondant à la valeur d'un attribut
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[contains(@name,'Ear')]
ou
//*[contains(@name,'Ear')]
Les guillemets doubles peuvent également être utilisés à la place des guillemets simples:
/Galaxy/*[contains(@name, "Ear")]
SORTIE
<CelestialObject name="Earth" type="planet" />
Recherche de nœuds par sous-chaîne correspondant à la valeur d'un attribut (insensible à la casse)
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[contains(lower-case(@name),'ear')]
ou
//*[contains(lower-case(@name),'ear')]
ou, avec la chaîne entre guillemets:
//*[contains(lower-case(@name), "ear")]
SORTIE
<CelestialObject name="Earth" type="planet" />
Rechercher des nœuds par sous-chaîne correspondant au début de la valeur d'un attribut
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[starts-with(lower-case(@name),'ear')]
ou
//*[starts-with(lower-case(@name),'ear')]
SORTIE
<CelestialObject name="Earth" type="planet" />
Rechercher des nœuds par sous-chaîne correspondant à la fin de la valeur d'un attribut
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[ends-with(lower-case(@type),'tar')]
ou
//*[ends-with(lower-case(@type),'tar')]
SORTIE
<CelestialObject name="Sun" type="star" />
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow