我有这样的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。
请帮帮我
答案 0 :(得分:0)
示例代码完美运行,无需更改单个字符。因此,它可能是XSLT处理器pbm,请使用以下链接检查您的代码。
http://xslt.online-toolz.com/tools/xslt-transformation.php
Ps:无论何时请求帮助,请解释一下你使用的处理器和相同版本的等等。 通过 拉贾马尼 NIC -OTC
答案 1 :(得分:0)
看不出为什么会失败的原因 - 除非您的输入数据与显示的不同,并且@ APPPOOL.NAME的内容不是有效的XML名称。