Trong Xpath, tôi muốn chọn các phần tử bằng một giá trị cụ thể.
Dữ liệu XML mẫu:
<aaa id="11" >
<aaa id="21" >
<aaa id="31" ></aaa>
<bbb id="32" >
<aaa id="41" ></aaa>
<bbb id="42" ></bbb>
<ccc id="43" ></ccc>
<ddd id="44" >qwerty</ddd>
<ddd id="45" ></ddd>
<ddd id="46" ></ddd>
</bbb>
</aaa>
<bbb id="22" >
<aaa id="33" >qwerty</aaa>
<bbb id="34" ></bbb>
<ccc id="35" ></ccc>
<ddd id="36" ></ddd>
<ddd id="37" ></ddd>
<ddd id="38" ></ddd>
</bbb>
<ccc id="23" >qwerty</ccc>
<ccc id="24" ></ccc>
</aaa>
Bây giờ, sử dụng XPath:
//ccc[.='qwerty']
Tôi nhận được kết quả chính xác, mong đợi :
Name Value
ccc qwerty
Bây giờ, sử dụng XPath:
//aaa[.='qwerty']
Tôi nhận được kết quả bất ngờ :
Name Value
aaa
aaa qwerty
Và điều tôi đặc biệt quan tâm là làm thế nào để chọn bất kỳ phần tử nào có giá trị đó
XPath:
//*[.='qwerty']
Tôi nhận được kết quả bất ngờ rất kỳ lạ :
Name Value
aaa
bbb
ddd qwerty
bbb qwerty
aaa qwerty
ccc qwerty
Ai đó có thể giải thích những kết quả này và cách sửa các biểu thức XPath của tôi để có được kết quả mong đợi hơn không?
. =
khác với XPathtext() =
. Xem các nút văn bản phù hợp khác với các giá trị chuỗi phù hợp để tìm hiểu lý do.