J'ai beaucoup de fichiers XML qui contiennent des attributs d'une valeur mal orthographié:XSLT: Renommer attribut si existe pas
<Part id="1">
<Attribute Name="Colo" Value="Red" />
</Part>
Colo
devrait être Color
. Maintenant, dans certains fichiers cela a été corrigé manuellement, puis les deux attributs existent:
<Attribute Name="Colo" Value="Red" />
<Attribute Name="Color" Value="Blue" />
J'ai une transformation XSL qui renomme l'attribut Colo
-Color
mais je ne sais pas comment éviter que lorsque l'attribut corrigé existe déjà.
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Attribute/@Name[. = 'Colo']">
<xsl:attribute name="Name">
<xsl:value-of select="'Color'"/>
</xsl:attribute>
</xsl:template>
Comment ne pas renommer s'il y a déjà l'attribut correct?
Ne devriez-vous * supprimer * l'ensemble de l'élément 'Attribute' avec un nom' Colo' lorsque la version corrigée existe? –
Ce serait mieux et c'est ce que je fais ensuite :) –
Confondre que vos "attributs" sont en fait des éléments, et que leurs "noms" sont en fait les valeurs de leurs attributs "nom" ... –