Як використовувати XPath для вибору кількох можливих текстових значень?

Я повинен вибрати коди рейтингу з тегу рейтингу, подібного до наведеного нижче, але лише тоді, коли агентство є "SP" або "SNP". Прямо зараз я маю:

./ratings/rating/agency[text()='SNP'|text()='SP']/../code

Хоча це, здається, не працює. Що я роблю неправильно?


  
    SP
    SP
    LONG TERM
    LOCAL
    SP Standard LT LC rating
    BBB+
    2011-09-07
  

Дякую,

Джаред

5

2 Відповіді

Головне - це профспілковий оператор | , який ви намагалися використовувати як «або». Змініть його на або :

./ratings/rating/agency[text()='SNP' or text()='SP']/../code

Або більше природно

ratings/rating[agency[. = 'SNP' or . = 'SP']]/code

У XPath 2.0 ви можете використовувати послідовність:

ratings/rating[agency = ('SNP', 'SP')]/code
9
додано

Use or instead of |

./ratings/rating/agency[text()='SNP' or text()='SP']/../code
1
додано