xpath
Trova nodi che hanno un attributo specifico
Ricerca…
Sintassi
- All'interno di un nodo specifico
- / percorso a / elemento [@attributo_nome]
- Ovunque nel documento
- //*[@nome attributo]
- All'interno di un nodo specifico con un certo valore
- / percorso a / elemento [@ attribute_name = 'valore di ricerca']
- / percorso a / elemento [@ attribute_name = "valore di ricerca"]
- Ovunque nel documento con un certo valore
- // * [@ attribute_name = 'stringa di ricerca']
- // * [@ attribute_name = "stringa di ricerca"]
Parametri
Selettore | funzione |
---|---|
@nome attributo | Seleziona il valore dell'attributo per un nodo, se presente |
Osservazioni
Usando [@attributo_nome] possiamo selezionare nodi che hanno l'attributo indipendentemente dal valore.
Ad esempio, con questo selettore possiamo adattare qualsiasi funzione o combinazione di funzioni come start-in e minuscolo, in base alle nostre esigenze.
Trova nodi con un attributo specifico
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[@name]
o
//*[@name]
PRODUZIONE
<CelestialObject name="Earth" type="planet" />
<CelestialObject name="Sun" type="star" />
Trova nodi con un valore di attributo specifico
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[@name='Sun']
o
//*[@name='Sun']
PRODUZIONE
<CelestialObject name="Sun" type="star" />
Trova i nodi per corrispondenza di sottostringa del valore di un attributo
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[contains(@name,'Ear')]
o
//*[contains(@name,'Ear')]
Le doppie virgolette possono anche essere usate al posto delle virgolette singole:
/Galaxy/*[contains(@name, "Ear")]
PRODUZIONE
<CelestialObject name="Earth" type="planet" />
Trova i nodi per sottostringa che corrisponde al valore di un attributo (senza distinzione tra maiuscole e minuscole)
XML
<Galaxy>
<name>Milky Way</name>
<CelestialObject name="Earth" type="planet"/>
<CelestialObject name="Sun" type="star"/>
</Galaxy>
XPATH
/Galaxy/*[contains(lower-case(@name),'ear')]
o
//*[contains(lower-case(@name),'ear')]
oppure, con la stringa tra virgolette:
//*[contains(lower-case(@name), "ear")]
PRODUZIONE
<CelestialObject name="Earth" type="planet" />
Trova i nodi per sottostringa che corrisponde all'inizio del valore di un attributo
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')]
o
//*[starts-with(lower-case(@name),'ear')]
PRODUZIONE
<CelestialObject name="Earth" type="planet" />
Trova i nodi per sottostringa che corrisponde alla fine del valore di un attributo
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')]
o
//*[ends-with(lower-case(@type),'tar')]
PRODUZIONE
<CelestialObject name="Sun" type="star" />
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow