Ho un documento XML che ho generato al volo e ho bisogno di una funzione per eliminare eventuali nodi duplicati da esso.Come posso rimuovere i nodi duplicati in XQuery?
La mia funzione è simile:
declare function local:start2() {
let $data := local:scan_books()
return <books>{$data}</books>
};
Esempio di output è:
<books>
<book>
<title>XML in 24 hours</title>
<author>Some Guy</author>
</book>
<book>
<title>XML in 24 hours</title>
<author>Some Guy</author>
</book>
</books>
Voglio solo quella voce nella mia tag libri radice, e ci sono altri tag, come dire pamphlet in là Anche questo ha bisogno di avere i duplicati rimossi. Qualche idea?
Aggiornamento dei seguenti commenti. Per nodi univoci, voglio dire rimuovere più ricorrenze di nodi che hanno esattamente lo stesso contenuto e struttura.
Hey Dimitre, grazie per la risposta; ma se ho capito bene, dipende da tutti gli elementi che hanno la stessa struttura che è incorporata nella query - per esempio mostrerebbe due nodi uguali se avessero lo stesso titolo e autori diversi ... – Brabster
@Brabster È non è affatto chiaro dalla tua domanda come dovrebbe essere definito il test per la disuguaglianza/unicità. Se lo definisci, ti aiuterà a trovare una soluzione più semplice –
Questo non sembra funzionare con XPath 1.0, possiamo ottenere una soluzione XPath 1.0 funzionante? – abarax