XPath:“字符串列表”除了“字符串”?

时间:2012-09-14 08:56:55

标签: xpath xpath-2.0

我正在使用XPath和XSLT(两者都是2.0版)。我想获得一个字符串列表,除了一个字符串:

<xsl:param name="lang" select="'de'"/>
<xsl:variable name="all-languages" select="('en','de','fr')"/>
<xsl:variable name="other-languages" select="$all-languages except $lang "/>

对于文档项目,我想在$lang中生成文档并链接到所有其他语言。因此,获取(在上面的示例中)$other-languages('de','fr')并使用<xsl:for-each>迭代除$lang中的字符串之外的语言会很高兴。

except似乎只适用于节点。这个问题的最佳解决方案是什么?

2 个答案:

答案 0 :(得分:3)

更简单,更高效

$all-languages[. ne $lang]

答案 1 :(得分:1)

从所有语言中删除语言似乎是一个好主意:

remove($all-languages, index-of($all-languages, $lang)))