J'ai quelques XML, par exemple, des fins, il ressemble à ceci:Vérification d'un élément en double dans la sortie
<root>
<field1>test</field1>
<f2>t2</f2>
<f2>t3</f2>
</root>
Je veux la transformer avec XSLT, mais je veux supprimer le deuxième élément f2 dans la sortie - comment vérifier dans mon modèle pour voir si l'élément f2 existe déjà dans la sortie lorsque le second élément f2 de la source est traité? Mon XSLT ressemble à ceci à l'heure actuelle:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no" omit-xml-declaration="yes" standalone="no" />
<xsl:template match="/">
<xsl:for-each select="./root">
<output>
<xsl:apply-templates />
</output>
</xsl:for-each>
</xsl:template>
<xsl:template match="*" >
<xsl:element name="{name(.)}">
<xsl:value-of select="." />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
je dois faire une sorte de contrôle autour de l'élément xsl: dans le modèle que je pense, mais je ne suis pas sûr de savoir comment interroger le document de sortie pour voir si l'élément est déjà présent.
Modifier: Les balises pré oubliées, le code devrait être visible maintenant!
Vous pourriez également simplement faire un modèle avec ce prédicat, je pense. –
C'est parfait.Oui, j'ai juste besoin de supprimer les doublons dans le même parent, je veux autoriser explicitement les mêmes éléments dans les autres parents - cela fonctionne très bien et est beaucoup plus simple que l'itinéraire que je descendais en utilisant les clés et la méthode Muenchen! –