问题描述
|
您好,我正在编写XSLT语句,我需要在其中实现1500条条件语句,例如-
<xsl:when test=\"ID = \'51\'\">
<br>
<xsl:text>background: url(\'rightcolumn_seniorliv.jpg\') no-repeat;</xsl:text>
<br>
</xsl:when>
<br>
<xsl:when test=\"ID = \'52\'\">
<br>
<xsl:text>background: url(\'rightcolumn_seniorliv.jpg\') no-repeat;</xsl:text>
<br>
</xsl:when>
如果我这样写语句,那么我的页面将会很慢。如何减少代码并以一种聪明的方式编写此语句?
解决方法
<xsl:variable name=\"idlist\">
<ids>
<id>50</id>
<id>59</id>
<id>66</id>
...
</ids>
</xsl:variable>
<xsl:key name=\"idk\" match=\"id\" use=\".\"/>
<xsl:when test=\"key(\'idk\',ID,$idlist)\">...
这是XSLT 2.0,但可以适用于1.0。
,我看不到您的所有情况,但是如果前两个模式继续存在,并且您希望ID为51至1551,则使用相同的'rightcolumn_seniorliv.jpg \',
<xsl: when test=\"ID>\'50\' and ID<\'1552\'\">
听起来这些ID案例已经远远超出了逻辑范围,进入了数据领域。我显然对您的应用程序一无所知,但是也许可以将一个ID映射到某个地方(可能是数据库)的图像名称。根据生成XML文件的过程(第一个,在XSLT转换之前),您可能希望通过此映射显式设置图像名称(或缺少图像名称)。然后一起丢掉ѭ3