微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何减少XSLT中的“ When”语句?

如何解决我如何减少XSLT中的“ When”语句?

| 您好,我正在编写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&gt;\'50\' and ID&lt;\'1552\'\">
听起来这些ID案例已经远远超出了逻辑范围,进入了数据领域。我显然对您的应用程序一无所知,但是也许可以将一个ID映射到某个地方(可能是数据库)的图像名称。根据生成XML文件的过程(第一个,在XSLT转换之前),您可能希望通过此映射显式设置图像名称(或缺少图像名称)。然后一起丢掉ѭ3     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。