XML转换失败:预期的Qname?

时间:2012-01-30 07:11:30

标签: xslt

我有这样的XML,

<?xml version="1.0" encoding="UTF-8"?>

<appcmd>

<APPPOOL APPPOOL.NAME="DefaultAppPool" PipelineMode="Integrated" RuntimeVersion="v2.0" state="Stopped">

<add name="DefaultAppPool" queueLength="1000" autoStart="false" enable32BitAppOnWin64="false">

</add>

</APPPOOL>

</appcmd>

我写了下面的XSLT将上面的xml转换成另一个xml,

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" />

<xsl:template match="/appcmd/APPPOOL">

<xsl:variable name="AppName" select="@APPPOOL.NAME"/>

<xsl:element name="{$AppName}">

    <xsl:attribute name="Name"><xsl:value-of select="@APPPOOL.NAME"/></xsl:attribute>

    <xsl:attribute name="PipelineMode"><xsl:value-of select="@PipelineMode"/>

    </xsl:attribute>

    <xsl:attribute name="RuntimeVersion"><xsl:value-of select="@RuntimeVersion"/>

    </xsl:attribute>

    <xsl:attribute name="state"><xsl:value-of select="@state"/></xsl:attribute>

    <xsl:copy-of select="add"/>

</xsl:element>

</xsl:template>

</xsl:stylesheet>

我收到以下错误 - &gt; xsl:element name =“{$ AppName}” XML转换失败:预期的Qname。

请帮帮我

2 个答案:

答案 0 :(得分:0)

示例代码完美运行,无需更改单个字符。因此,它可能是XSLT处理器pbm,请使用以下链接检查您的代码。

http://xslt.online-toolz.com/tools/xslt-transformation.php

Ps:无论何时请求帮助,请解释一下你使用的处理器和相同版本的等等。 通过 拉贾马尼 NIC -OTC

答案 1 :(得分:0)

看不出为什么会失败的原因 - 除非您的输入数据与显示的不同,并且@ APPPOOL.NAME的内容不是有效的XML名称。