Chcesz znaleźć elementy, które zawierają "mecz", albo że równe "mecz"?
ten znajdzie elementy, które mają węzły tekstowe, że równe „mecz” (mecze żaden z elementów ze względu na początkowe i końcowe spacje w random2
):
//*[text()='match']
ten znajdzie wszystkie elementy które mają węzły tekstowe, które są równe "dopasowanie", po usunięciu początkowych i końcowych białych znaków (odpowiada random2
):
//*/text()[normalize-space(.)='match']/parent::*
Pozwoli to znaleźć wszystkie elementy, które zawierają 'mecz' wartości węzła text (mecze random2
i random3
):
//*[contains(text(),'match')]
Ten XPATH 2,0 rozwiązanie wykorzystuje mecze() funkcja i wzór regex, który wyszukuje węzły tekstowe, które zawierają "dopasowanie" i rozpoczyna się na początku ciągu (np ^
) lub granicę słowa (to znaczy \W
) i zakończony przez koniec ciągu (tj. $
) lub granicę słowa. Trzeci parametr i
oblicza niewrażliwy na wielkość liter wzór regex. (Mecze random2
)
//*[matches(text(),'(^|\W)match($|\W)','i')]
Szukasz dopasować jeśli zawiera słowo w dowolnym miejscu w tekście (np „zobaczyć, czy to będzie * mecz * słowo”), albo tylko elementy, które mają wartość równą „mecz "(ignorując otaczające białe spacje)? –
To nie jest tak istotne, albo by działało. Problem polegał głównie na tym, że zwracali oni także swoich rodziców. – julian