che ho visto su SO e in altri luoghi che si suppone quanto segue per lavorare (questo esempio viene sollevato direttamente da O'Reilly XSLT Cookbook):Come eseguire le operazioni di set in XPath 1.0
(: intersection :)
$set1[count(. | $set2) = count($set2)]
(: difference :)
$set1[count(. | $set2) != count($set2)]
e sembra che dovrebbe essere OK, tuttavia questo sembra fallire se usato con percorsi effettivi piuttosto che variabili. Ad esempio, dato il seguente documento
<a>
<new>
<val>1</val>
<val>2</val>
</new>
<old>
<val>2</val>
<val>3</val>
</old>
</a>
e l'espressione XPath /a/new/val[count(. | /a/old/val)=count(/a/old/val)]/text()
mi aspetto di ottenere il set-nodo { 2 }
ma invece che ottiene { 1 2 }
. Qualche idea su cosa sto facendo male?
Buona domanda, +1. Vedi la mia risposta per la spiegazione del tuo problema e per un'espressione XPath semplice e facile con un solo liner - soluzione - nessuna altra risposta propone una soluzione in questo momento. :) –