J'ai un document XML que je génère à la volée, et j'ai besoin d'une fonction pour éliminer les nœuds en double.Comment puis-je supprimer des noeuds en double dans XQuery?
Ma fonction ressemble:
declare function local:start2() {
let $data := local:scan_books()
return <books>{$data}</books>
};
sortie de l'échantillon est:
<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>
Je veux juste une entrée dans mes livres balise racine, et il y a d'autres balises, comme disent pamphlet là-dedans aussi qui ont besoin d'avoir des doublons enlevés. Des idées?
Mise à jour des commentaires suivants. Par nœuds uniques, je veux dire supprimer plusieurs occurrences de nœuds qui ont exactement le même contenu et la même structure.
Hey Dimitre, merci pour la réponse; mais si je comprends bien, cela dépend de tous les éléments ayant la même structure qui est intégrée dans la requête - par exemple il montrerait deux nœuds identiques s'ils avaient le même titre et différents auteurs ... – Brabster
@Brabster Il est pas du tout clair de votre question comment le test d'inégalité/d'unicité devrait être défini. Si vous le définissez, cela vous aidera à trouver une solution plus simple. –
Cela ne semble pas fonctionner avec XPath 1.0, pouvons-nous obtenir une solution XPath 1.0 fonctionnelle? – abarax