J'ai un morceau de XML qui est structuré semblable à ceci:QName invalide lors de la transformation d'un .net XSLTransform
<root>
<score name="Exam 1"><value>76</value></score>
<score name="Exam 2"><value>87</value</score>
</root>
et je voudrais le transformer pour ressembler à ceci:
<root>
<Exam 1>76</Exam 1>
<Exam 2>87</Exam 2>
</root>
A la suite this article J'utilise cette feuille de style:
<stylesheet>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match='@*|node()'>
<xsl:copy>
<xsl:apply-templates select='@*|node()'/>
</xsl:copy>
</xsl:template>
<xsl:template match='score'>
<xsl:element name='{@name}'>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
</stylesheet>
Cependant, quand je la transforme et la charge i t dans un document, je reçois cette erreur:
System.Xml.Xslt.XsltException: 'Exam 1' is an invalid QName
Il semble que la plupart des résultats Google montrent des gens avec cette erreur ont passé une chaîne vide en quelque sorte, l'erreur est « » est un QName invalide, mais ce n'est pas le cas ici.
Quel est le problème? Y a-t-il une meilleure solution alternative?
Il peut s'agir de l'espace dans le nom de noeud. – pc1oad1etter