tôi đã nhìn thấy trên SO và những nơi khác rằng đây là vụ phải làm việc (ví dụ này được nâng lên trực tiếp từ XSLT Cookbook O'Reilly):Làm thế nào để thực hiện thiết lập hoạt động trong XPath 1.0
(: intersection :)
$set1[count(. | $set2) = count($set2)]
(: difference :)
$set1[count(. | $set2) != count($set2)]
và nó có vẻ như nó sẽ là OK, tuy nhiên điều này dường như thất bại khi được sử dụng với đường dẫn thực tế chứ không phải là biến. Ví dụ, với các tài liệu sau đây
<a>
<new>
<val>1</val>
<val>2</val>
</new>
<old>
<val>2</val>
<val>3</val>
</old>
</a>
và biểu thức XPath /a/new/val[count(. | /a/old/val)=count(/a/old/val)]/text()
tôi mong chờ để có được nút thiết lập { 2 }
nhưng thay vào đó đang nhận được { 1 2 }
. Bất kỳ ý tưởng những gì tôi đang làm sai?
Câu hỏi hay, +1. Xem câu trả lời của tôi để giải thích về vấn đề của bạn và cho một biểu thức XPath một lớp đơn giản và dễ dàng - giải pháp - không có câu trả lời nào khác đề xuất một giải pháp vào lúc này. :) –