2

我根本无法在任何地方找到这个。如果 id 为“cat”的 div 也分配了一个名为“true”的类,我如何在 xslt 中编写 if 语句以显示“YES”字样?

4

1 回答 1

1

如果有问题的 div 是当前节点,并且您当前不知道它的 ID 是否为“cat”或类属性,那么您可以编写

<xsl:if test=".[@id='cat' and contains(@class,'true')]">
  YES
</xsl:if>

如果您在匹配 on 的模板中div[@id='cat'],则可以使用更简单的 test test="contains(@class,'true')"。(反之亦然。)

请注意,刚刚制定的测试对于 div 将成功class="untrue"- 如果这对您的情况来说是一个问题,那么解决方案会变得有点混乱。

在 XSLT 1.0 中,最简单的方法是这样编写:

<xsl:if test=".[@id='cat' 
              and 
              contains(concat(' ', @class, ' '),' true ')]">
  YES
</xsl:if>

在 XSLT 2.0 中,我会写如下内容:

<xsl:if test=".[@id='cat' 
              and 
              tokenize(@class, '\s') = 'true')]">
  YES
</xsl:if>
于 2013-08-15T16:22:08.160 回答