недопустимое QName при преобразовании .net XSLTransform - PullRequest
1 голос
/ 14 ноября 2008

У меня есть фрагмент 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, но здесь это не так.

В чем проблема? Есть ли лучшее альтернативное решение?

1 Ответ

1 голос
/ 14 ноября 2008

В имени элемента не должно быть пробела.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...