1

我正在使用 XSL,我想将 ac:if 放入我生成的 HTML 中,

<c:if test="${value=='yes'}">

但是标签的 test="" 部分被解释为 XslPath 并解析...

有什么方法可以逃脱或禁用这个作为 XslPath 的测试部分

4

1 回答 1

0

问题是由于 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'}"/>
于 2012-10-13T01:27:21.563 回答