我有一个包含两个值的变量,例如one two
我的元素具有一个属性,其中包含一个值,这些值都不是这些值或其中一个值和其他值,例如
<elem att="one"/>
<elem att="two"/>
<elem att="one somethingelse"/>
<elem att="two somethingelse somemore"/>
当我这样做时:
<xsl:if test="@att = $variable"></xsl:if>
如果属性包含变量中包含的值之一,则为真。
但是,如果属性值包含其中一个值,那么它也应该是真的,然后可能会更多,例如最后两个elem
元素。
我该怎么做?我是否需要单独迭代每个属性值?
所以要说清楚:使用我的代码,测试仅适用于前两个elem
元素,但不适用于最后两个元素。我需要检查至少有一个属性值是否与变量中的某个值匹配。
答案 0 :(得分:2)
假设你的变量是一个字符串序列,我会将属性值标记并进行比较,即<xsl:if test="$variable = tokenize(@att, '\s+')">...</xsl:if>
。