J'ai le code XML suivant:Utilisez XSLT pour supprimer tous les nœuds en double seulement quand ils contiennent le même contenu
<?xml version="1.0" encoding="UTF-8"?>
<SomeName>
<NodeA>
DataA
</NodeA>
<NodeA>
DataB
</NodeA>
<NodeA>
DataA
</NodeA>
<AnotherNode>
DataA
</AnotherNode>
<AnotherNode>
DataC
</AnotherNode>
<AnotherNode>
DataC
</AnotherNode>
<SingleNode>
DataA
</SingleNode>
Et je dois analyser le fichier XML en supprimant les nœuds qui ont le même nom ainsi que le même contenu. Le problème est que les doublons sont plus ou moins dispersés dans le document et que je n'ai pas de liste de noms de nœuds ou de contenus spécifiques dont je veux me débarrasser.
Fondamentalement, ma sortie devrait ressembler à ceci:
<?xml version="1.0" encoding="UTF-8"?>
<SomeName>
<NodeA>
DataA
</NodeA>
<NodeA>
DataB
</NodeA>
<AnotherNode>
DataA
</AnotherNode>
<AnotherNode>
DataC
</AnotherNode>
<SingleNode>
DataA
</SingleNode>
Quelqu'un at-il un peu intelligent XSLT?
Merci!
+1 pour la solution précise. Le seul problème mineur que je vois est l'utilisation de 'count()' au lieu de 'generate-id()', ce qui peut être plus rapide sur la plupart des processeurs XSLT. –
@Dimitre: Merci! Je ne sais vraiment pas lequel est le plus rapide. J'ai tendance à penser que la génération d'Id et la manipulation de chaînes sont plus lentes. Je devrais le tester. Mais ce n'est vraiment pas la raison. J'aime juste Set Theory! –
Fantastique. Merci beaucoup! – Grinner