0

「ビデオ」のクラスが body タグに表示されるかどうかに応じて、xslt にいくつかの html を表示したいと思います。これは可能ですか?多くの理由で、私は Javascript を使用できません。

4

2 に答える 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>

もちろん、これは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>

matches()XSLT 2.0 を使用している場合は、関数も使用できます。

于 2012-10-09T20:00:35.343 に答える