[英]XSL IF test a condition stored in a variable?
我有一个构建复杂的OR测试条件的递归模板。 其结果存储在$filtercriteria
变量中,其值为:
contains(@Category,'abc') or contains(@Category,'def')
如何在XSL IF语句中使用存储在变量中的此测试条件?
我希望将$filtercriteria
的文字值评估为测试条件:
<xsl:if test="$filtercriteria">
Do something...
</xsl:if>
应翻译为:
<xsl:if test="contains(@Category,'abc') or contains(@Category,'def')">
Do something...
</xsl:if>
使用纯XSLT 1.0和2.0,您不能将XPath表达式构造为字符串并对其求值。 为此,您需要像http://www.exslt.org/dyn/functions/evaluate/这样的扩展名,或者您需要具有xsl:evaluate
的XSLT 3.0处理器: http : //www.w3.org/TR/xslt-30 /#element-evaluate 。
当我需要xsl:evaluate
而不是扩展名或XSLT 3.0时,我去了meta并编写XSLT来生成新的XSLT,该XSLT本身包含了组合的语句或表达式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.