Vuoi trovare elementi che contengono "match", o che pari "match"?
Questo troverà elementi che hanno i nodi di testo che la parità di 'match' (partite nessuno degli elementi a causa di spazi iniziali e finali in random2
):
//*[text()='match']
Questo troverà tutti gli elementi che hanno nodi di testo uguali a "corrispondenza", dopo aver rimosso spazi vuoti iniziali e finali (corrisponde a random2
):
//*/text()[normalize-space(.)='match']/parent::*
Questo troverà tutti gli elementi che contengono 'match' nel valore nodo di testo (partite random2
e random3
):
//*[contains(text(),'match')]
Questo 2.0 soluzione XPath utilizza le corrispondenze() funzione e un pattern regex che cerca i nodi di testo che contengono 'match' e iniziano all'inizio della stringa (es ^
) o un limite di parola (ad esempio \W
) e terminato dalla fine della stringa (ad esempio $
) o un limite di parola. Il terzo parametro i
valuta il pattern regex senza distinzione tra maiuscole e minuscole. (Partite random2
)
//*[matches(text(),'(^|\W)match($|\W)','i')]
fonte
2010-06-08 01:58:27
Stai cercando di abbinare se contiene la parola in qualsiasi parte del testo (ad esempio "vedere se questo sarà * partite * la parola"), o solo gli elementi che hanno un valore pari a "match "(ignorando gli spazi bianchi circostanti)? –
non è rilevante, o funzionerebbe. Il problema consisteva principalmente nel restituire i suoi genitori allo stesso modo – julian