2008-11-14 2 views
1

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?

+0

Il peut s'agir de l'espace dans le nom de noeud. – pc1oad1etter

Répondre

1

Vous ne pouvez pas avoir d'espace dans un nom d'élément.

+0

Oui, c'était tout. – pc1oad1etter