У меня есть фрагмент XML, который структурирован примерно так:
<root>
<score name="Exam 1"><value>76</value></score>
<score name="Exam 2"><value>87</value</score>
</root>
и я хотел бы преобразовать его так:
<root>
<Exam 1>76</Exam 1>
<Exam 2>87</Exam 2>
</root>
После этой статьи Я использую эту таблицу стилей:
<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>
Однако, когда я преобразую его и загружаю в документ, я получаю эту ошибку:
System.Xml.Xslt.XsltException: «Экзамен 1» является недействительным QName
Похоже, что многие из результатов Google показывают, что люди с этой ошибкой как-то пропустили пустую строку, ошибка "" является недопустимым QName, но здесь это не так.
В чем проблема? Есть ли лучшее альтернативное решение?