我有这个样式表,它采用空输入。
并需要将输出生成为
<result>
<Customers>
<customer name="FirstName">John</customer>
<customer name="FirstName">Kevin</customer>
</Customers>
</result>
我现在在xsl中指定的结果是我将从同一样式表中的其他服务调用获得的。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xsl:template match="/">
<xsl:variable name="request">
<result>
<Customers>
<customer name="Name">John</customer>
<customer name="Name">Kevin</customer>
</Customers>
</result>
</xsl:variable>
<xsl:apply-templates select="$request/result/Customers"/>
</xsl:template>
<xsl:template match="node( ) | @*">
<xsl:copy>
<xsl:apply-templates select="@* | node( )"/>
</xsl:copy>
</xsl:template>
<xsl:template match="customer/@name[. = 'Name']">
<xsl:attribute name="name">FirstName</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
但调用模板时出错。我的样式表出了什么问题?
答案 0 :(得分:2)
你说过which takes an empty input
吗?不,XSLT仅在提供XML输入时才起作用(它可能小到这个:<r/>
),但它必须具有XML输入。其他一切看起来都很好..但是根据你的预期输出,apply-templates应该像
<xsl:apply-templates select="$request/result"/>