xslt:将星号设置为默认参数值

时间:2014-06-09 07:54:36

标签: xslt xpath

我需要按照param'year'过滤结果。如果没有设置参数'年',我不应该过滤结果。是否可以将星号设置为默认参数值?或者我需要构造xpath dinamically,或使用xsl:if?

<xsl:param name="year" select="*"/>
...
<xsl:template match="albums">
    <xsl:apply-templates select="album[year=$year]"/>
</xsl:template>

我知道默认情况下xslt处理器会尝试评估它,但是如果我设置了

<xsl:param name="year" select="'*'"/>

xpath也不起作用。

1 个答案:

答案 0 :(得分:0)

您可以尝试将 xsl:apply-templates 更改为此

 <xsl:apply-templates select="album[$year = '*' or year=$year]"/>

或者,尝试将参数更改为此

<xsl:param name="year" />

然后你可以写这个

<xsl:apply-templates select="album[not($year) or year=$year]"/>