我正在使用 XSL,我想将 ac:if 放入我生成的 HTML 中,
<c:if test="${value=='yes'}">
但是标签的 test="" 部分被解释为 XslPath 并解析...
有什么方法可以逃脱或禁用这个作为 XslPath 的测试部分
我正在使用 XSL,我想将 ac:if 放入我生成的 HTML 中,
<c:if test="${value=='yes'}">
但是标签的 test="" 部分被解释为 XslPath 并解析...
有什么方法可以逃脱或禁用这个作为 XslPath 的测试部分
问题是由于 XSLT 将属性中的一对花括号视为 AVT(属性值模板)的规范。
为了指定一个真正的花括号,它必须加倍。
使用:
<c:if test="${{value=='yes'}}">
这是一个完整的转换:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:c="some:c" exclude-result-prefixes="c">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<c:if test="${{value=='yes'}}"/>
</xsl:template>
</xsl:stylesheet>
当将此转换应用于任何 XML 文档(本演示中未使用)时,将产生所需的正确结果:
<c:if xmlns:c="some:c" test="${value=='yes'}"/>