2

私は単にこれをどこにも見つけることができません。「cat」のIDを持つdivにも「true」と呼ばれるクラスが割り当てられている場合、「YES」という単語を表示するためにxsltにifステートメントを書くにはどうすればよいですか?

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