2011-10-28 12 views
5

Muszę wybrać kody oceny ze znacznika ocen podobnego do poniższego, ale tylko wtedy, gdy agencja ma "SP" lub "SNP". Teraz mam:Jak korzystać z XPath, aby wybrać wiele możliwych wartości tekstowych?

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

Wydaje się, że to nie działa. Co ja robię źle?

<ratings> 
    <rating> 
    <agency>SP</agency> 
    <provider>SP</provider> 
    <type>LONG TERM</type> 
    <currencyType>LOCAL</currencyType> 
    <description>SP Standard LT LC rating</description> 
    <code>BBB+</code> 
    <date>2011-09-07</date> 
    </rating> 
</ratings> 

Dzięki

Jared

Odpowiedz

9

Najważniejsze jest operatorem unia | które próbowałem użyć jako 'lub' . Zmień go or:

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

lub więcej naturalnie

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

W XPath 2.0, można użyć sekwencję:

ratings/rating[agency = ('SNP', 'SP')]/code 
1

Zastosowanie or zamiast |

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