Jak mogę to zrobić z XPath:
//bookstore/book/title or //bookstore/city/zipcode/title
Po prostu //title
nie zadziała, bo ja też//bookstore/magazine/title
ps Widziałem wiele przykładów, ale głównie z atrybutami lub strukturą pojedynczego węzła.
Jak mogę to zrobić z XPath:
//bookstore/book/title or //bookstore/city/zipcode/title
Po prostu //title
nie zadziała, bo ja też//bookstore/magazine/title
ps Widziałem wiele przykładów, ale głównie z atrybutami lub strukturą pojedynczego węzła.
Odpowiedzi:
Wszystkie title
węzły z zipcode
lub book
węzłem jako nadrzędnym:
Wersja 1:
//title[parent::zipcode|parent::book]
Wersja 2:
//bookstore/book/title|//bookstore/city/zipcode/title
|
jest operatorem zbioru sum .
or
oznacza, że można go zlokalizować a or b or both
. Logiczne xor
(eXclusive OR) oznacza, że może zostać zlokalizowany przez either a or b, but not both
. Logiczne and
oznacza, że można go zlokalizować both a and b
.
Jeśli chcesz wybrać tylko jeden z dwóch węzłów z operatorem unii, możesz skorzystać z tego rozwiązania:
(//bookstore/book/title | //bookstore/city/zipcode/title)[1]
(
i )[1]
oznacza wybranie tylko jednego z dwóch?!?!
or
lub w innych językach |
, więc gdyby istniały oba węzły, zawsze zwracałby pierwszy węzeł?
Jeśli element ma dwie ścieżki xpath. Następnie możesz napisać dwie ścieżki x, jak poniżej:
xpath1
| xpath2
Na przykład:
//input[@name="username"] | //input[@id="wm_login-username"]