【发布时间】:2013-02-22 09:57:32
【问题描述】:
我的 XSL 不能使用参数
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="reportname" />
<xsl:param name="quarter" />
<xsl:param name="menteename" />
<xsl:template match="AllReports" >
<xsl:for-each select="./Report[@Name=$reportname]" >
<table border="0" class="dottedlines" cellpadding="2" cellspacing="0">
<xsl:for-each select="Record[@Period=$quarter] and ($menteename)] >
<tr>
<xsl:for-each select="Entry">
<td><xsl:value-of select="." disable-output-escaping="yes"/></td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
我的 XSL 使用硬编码值
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="reportname" />
<xsl:param name="quarter" />
<xsl:param name="menteename" />
<xsl:template match="AllReports" >
<xsl:for-each select="./Report[@Name=$reportname]" >
<table border="0" class="dottedlines" cellpadding="2" cellspacing="0">
<xsl:for-each select="Record[@Period=$quarter] and (Entry= 'Dhirde, Govinda' or Entry= 'Vaze, Kedar')] >
<tr>
<xsl:for-each select="Entry">
<td><xsl:value-of select="." disable-output-escaping="yes"/></td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
我正在传递变量 $menteename = "Entry= 'Dhirde, Govinda' 或 Entry= 'Vaze, Kedar'" 的值。但是硬编码的东西效果很好,而不是参数一。我发现 XSL 解析存在一些问题,即它读取参数值中的标签。这是造成问题的原因吗。我怎样才能做到这一点?
【问题讨论】:
-
抱歉,在上传代码时,我额外输入了一个结束 ']'。它不适用于
并适用于
标签: xml xslt xml-parsing