Noms d'éléments dynamiques
Je veux transformer un document XML. La source XML ressemble à ceci:
<svc:ElementList>
<svc:Element>
<Year>2007</Year>
</svc:Element>
<svc:Element>
<Year>2006</Year>
</svc:Element>
<svc:Element>
<Year>2005</Year>
</svc:Element>
</svc:ElementList>
Je veux le transformer en:
<ElementList>
<NewTag2007/>
<NewTag2006/>
<NewTag2005/>
</ElementList>
La ligne de code suivante ne fonctionne pas:
<xsl:element name="{concat('NewTag',Element/Year)}"/>
Le résultat est une série d'éléments qui ressemblent à ceci: < NewTag >. (Sans les espaces...)
"//Élément/An""./Élément/An" et "//svc:/Élément de l'Année" ne fonctionne pas non plus. Une complication est que la balise "Element" est dans le "svc" espace de noms, tandis que le "An" de la balise est dans l'espace de noms par défaut.
De toute façon, je suis face à un espace de noms problème ou suis-je mal à l'aide de la "méthode concat()" fonction?
source d'informationauteur JPLemme
Vous devez vous connecter pour publier un commentaire.
Probablement des problèmes d'espace de noms et peut-être qu'un avec le contexte actuel. Pour la source (avec ajout de la déclaration d'espace de noms pour le rendre xml bien formé)
la feuille de style
vous donnera les résultats que vous avez besoin. Notez que
svc:Element
doit être sélectionné à l'aide de l'espace de noms préfixés et que le contexte lors de la création de nouvelles balises estsvc:Element
passvc:ElementList
.