我需要按照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也不起作用。
答案 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]"/>