2011-10-28 33 views
5

Tôi phải chọn mã xếp hạng trong thẻ xếp hạng tương tự như thẻ bên dưới, nhưng chỉ khi đại lý là 'SP' hoặc 'SNP'. Hiện tại tôi có:Cách sử dụng XPath để chọn nhiều giá trị văn bản có thể có?

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

Điều này dường như không hoạt động. Tôi đang làm gì sai?

<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> 

Cảm ơn,

Jared

Trả lời

9

Điều quan trọng là người điều khiển đoàn | mà bạn đã cố gắng để sử dụng như là một 'hoặc' . Thay đổi nó để or:

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

Hoặc một cách tự nhiên hơn,

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

Trong XPath 2.0, bạn có thể sử dụng một chuỗi:

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

Sử dụng or thay vì |

./ratings/rating/agency[text()='SNP' or text()='SP']/../code 
Các vấn đề liên quan