Tôi có tài liệu XML như:xpath 'hoặc' hành xử như công đoàn ('|') với xmllib2
<rootelement>
<myelement>test1</myelement>
<myelement>test2</myelement>
<myelement type='specific'>test3</myelement>
</rootelement>
Tôi muốn lấy cụ thể myelement
và nếu nó không có mặt, sau đó mục đầu tiên. Vì vậy, tôi viết:
/rootelement/myelement[@type='specific' or position()=1]
Các XPath spec bang về 'hoặc biểu hiện' rằng:
Các toán hạng phải là không được đánh giá nếu các toán hạng bên trái để đánh giá đúng
Vấn đề là libxml2-2.6.26 dường như áp dụng sự kết hợp của cả hai biểu thức, trả về một "2 Node Set" (ví dụ sử dụng xmllint --shell
).
Có phải libxml2 hoặc tôi đang làm gì sai?
Tốt câu hỏi (1). Xem câu trả lời của tôi cho một biểu thức XPath đơn mà chọn chính xác (các) nút mà bạn muốn. :) –