J'ai un fichier xsl qui copie un fichier xml et renomme la balise racine.xsl: Transformer les balises avec espaces de noms
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:abc="http://example.com">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="root">
<test>
<xsl:apply-templates select="node()|@*"/>
</test>
</xsl:template>
<!--xsl:template match="abc:set">
-<xsl:apply-templates select="node()|@*"/>-
</xsl:template-->
</xsl:stylesheet>
Cela fonctionne très bien, mais quand je décommenter le dernier bloc de traiter quelques balises namespaced je suis une erreur que le dit que quelque chose ne va pas avec la déclaration de copie. Comment puis-je faire correspondre et transformer les balises namespaced?
Il serait utile si vous avez posté un exemple de XML et/ou le message d'erreur exact. –
Ne nous montrez pas le code qui fonctionne, montrez-nous le code qui ne fonctionne pas, et dites-nous exactement comment cela échoue. Je suis sûr que le message est plus spécifique que "quelque chose ne va pas avec la déclaration de copie". –
Le message d'erreur a été: XSLTProcessor :: transformToXml(): erreur d'exécution: xxx.xsl ligne zz élément copie. Le code qui n'a pas fonctionné était juste le code ci-dessus sans les caractères de commentaire '! -' et '-'. Mais le problème est résolu maintenant, merci. – stofl