xslt 2.0检查至少有一个属性值是否等于变量中指定的值

时间:2015-05-25 13:27:35

标签: xml xslt

我有一个包含两个值的变量,例如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元素,但不适用于最后两个元素。我需要检查至少有一个属性值是否与变量中的某个值匹配。

1 个答案:

答案 0 :(得分:2)

假设你的变量是一个字符串序列,我会将属性值标记并进行比较,即<xsl:if test="$variable = tokenize(@att, '\s+')">...</xsl:if>