XSLT如果正文有一个类然后做一些事情

时间:2012-10-09 19:35:37

标签: xslt

我希望我的xslt显示一些html,具体取决于body标签上是否显示“video”类。这可能吗?由于很多原因,我无法使用Javascript。

2 个答案:

答案 0 :(得分:4)

在XSLT中,可以避免几乎完全显式的条件指令:

<xsl:template match=
  "/html/body[contains(concat(' ', @class, ' '),' video ')]">
 <!-- Wanted processing here -->
</xsl:template>

当然,为了被选择执行,该模板需要匹配来自相应<xsl:apply-templates>的select属性中指定的节点集的节点 - 显式或作为XSLT默认值的一部分处理(作为内置XSLT模板的一部分)。

答案 1 :(得分:2)

<xsl:if test="contains(/html/body/@class, 'video')">
</xsl:if>

当然,对于my-video和其他类,这也将评估为true。如果可能发生此类冲突,请考虑使用

<xsl:if test="/html/body/@class = 'video' or
              contains(/html/body/@class, ' video ' or
              starts-with(/html/body/@class, 'video ' or
              ends-with(/html/body/@class, ' video')">
</xsl:if>

如果使用XSLT 2.0,您还可以使用matches()功能