我希望我的 xslt 显示一些 html,具体取决于“视频”类是否显示在 body 标签上。这可能吗?由于许多原因,我不能使用 Javascript。
问问题
1004 次
2 回答
4
在 XSLT 中,几乎可以完全避免显式条件指令:
<xsl:template match=
"/html/body[contains(concat(' ', @class, ' '),' video ')]">
<!-- Wanted processing here -->
</xsl:template>
当然,为了被选中执行,这个模板需要匹配一个节点集中的节点,该节点在相应的 select 属性中指定<xsl:apply-templates>
——显式地或作为 XSLT 默认处理的一部分(作为内置的一部分)在 XSLT 模板中)。
于 2012-10-10T12:10:52.657 回答
2
<xsl:if test="contains(/html/body/@class, 'video')">
</xsl:if>
当然,这也将评估为 true formy-video
和其他类。如果可能发生此类冲突,请考虑使用
<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()
函数
于 2012-10-09T20:00:35.343 回答