J'ai un XML où un nœud de texte avec la valeur "null tag" apparaît (aléatoirement) aux différents endroits dans le fichier.
Ma question est comment pour remplacer le texte avec un autre texte, où le nom de l'élément (et le parent parent) est inconnu. J'ai déjà créé un fichier XSLT qui a l'air un peu volumineux et je ne suis pas sûr de son efficacité dans le temps de transformation.
C'est le XML de test d'échantillon que j'ai créé:Code efficace pour remplacer un nœud de texte par un autre texte en utilisant XSLT?
<root>
<sub_root>abc</sub_root>
<sub_root>
<child>test value</child>
<child2>test value</child2>
<sub_child>
<node1>data</node1>
<node2>data2</node2>
<node3>
<grand_child>test value</grand_child>
</node3>
<node4>test value</node4>
</sub_child>
</sub_root>
</root>
C'est le XSLT:
<xsl:template match="@*|*|text()">
<xsl:copy>
<xsl:choose>
<xsl:when test="text()='test value'">
<xsl:apply-templates select="@*|*"/>
<xsl:text>replaced</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="@*|*|text()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
C'est la sortie désirée, je suis en train de générer:
<root>
<sub_root>abc</sub_root>
<sub_root>
<child>replaced</child>
<child2>replaced</child2>
<sub_child>
<node1>data</node1>
<node2>data2</node2>
<node3>
<grand_child>replaced</grand_child>
</node3>
<node4>replaced</node4>
</sub_child>
</sub_root>
</root>
ce code peut-il être écrit d'une manière encore meilleure (dans tous les termes)? Ou est-ce que mon code est meilleur?
yup cela réduit l'abstraction dans mon code .. :-) thanx .. –