XSLT balise racine de l'espace de noms au lieu d'attribut d'élément de l'espace de noms
J'ai un fichier XSL pour le transfert d'un autre fichier XSL. Je veux que la déclaration d'espace de noms pour être sur le tag racine, au lieu d'être répétée sur chaque élément unique!!
Voici ma feuille de style:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mynamespace="somenamespace" version="2.0">
<xsl:output method="xml" omit-xml-declaration="no" standalone="yes" indent="yes" />
<xsl:template match="myMatchedNode">
<mynamespace:tag>Some text i want inserted into the xsl</mynamespace:tag>
<xsl:copy>
<xsl:apply-templates select="@*|node()" /></xsl:copy>
</xsl:template>
</xsl:stylesheet>
Il renvoie à quelque chose comme ceci:
....
<mynamespace:tag xmlns:mynamespace="somenamespace">Some text i want inserted into the xsl</mynamespace:tag>
....
Comment puis-je la force de la déclaration d'espace de noms sur la balise racine du résultat?!
OriginalL'auteur JavaRocky | 2009-05-19
Vous devez vous connecter pour publier un commentaire.
Vous devez insérer le nœud d'espace de noms sur l'élément de document de votre arborescence de résultat. Il y a plusieurs façons de le faire, selon que vous êtes à l'aide de XSLT 1.0 ou 2.0. Ce qui suit est un 2.0 solution. Je suis en supposant que vous êtes en train de faire une modification de l'identité de transformation sur le document d'entrée (votre question n'a pas vraiment préciser):
Pour une couverture complète de toutes les différentes techniques pour le contrôle des espaces de noms dans votre document de sortie, découvrez la "Pas assez d'espaces de noms" de la section "espaces de noms XSLT" article sur mon site web.
Oh! Et j'ai votre livre. x2 statut de Légende.
Merci pour votre trop-nature des mots. 🙂
OriginalL'auteur Evan Lenz
Peut-être que j'ai mal compris la question, mais je pense que vous devriez faire ceci:
Qui devrait vous permettre d'utiliser votre espace de noms de balises que l'espace de noms par défaut et le document de sortie ont eux aussi l'espace de noms par défaut. Votre document d'entrée peut toujours utiliser le méchant mynamespace:tag de la syntaxe.
Vous pourriez essayer de faire cela, aussi:
Je ne suis pas entièrement sûr de remplacer mynamespace:tag avec juste la balise, et si elle le fait, elle peut être dépendant de l'implémentation.
OriginalL'auteur easel