我的 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 解析存在一些问题,它读取参数值中的标签。这是造成问题的原因吗。我怎样才能使这项工作?