Trong Xpath, tôi muốn chọn các phần tử bằng một giá trị cụ thể.XPath - Chọn các phần tử có giá trị bằng
mẫu dữ liệu XML:
<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ờ, bằng cách sử dụng XPath:
//ccc[.='qwerty']
tôi nhận được đúng, dự kiến kết quả:
Name Value
ccc qwerty
Bây giờ, bằng cách sử dụng XPath :
//aaa[.='qwerty']
tôi nhận được bất ngờ kết quả:
Name Value
aaa
aaa qwerty
Và những gì tôi đặc biệt quan tâm, là làm thế nào để chọn yếu tố bất kỳ với giá trị đó
XPath:
//*[.='qwerty']
Tôi rất lạ bất ngờ kết quả:
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à làm thế nào để sửa chữa các biểu thức XPath của tôi để có được kết quả mong đợi nhiều hơn?
Vì XPath '. = 'khác với XPath' text() = '. 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 **] (http://stackoverflow.com/a/34595441/290085) để tìm hiểu lý do. – kjhughes