2012-10-12 25 views
1

我使用XSL,我希望把AC:如果伸到我生成的HTML,預防的C XslPath解析:如果測試字符串

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

但測試=「」標記的一部分被解釋作爲XslPath和fials在解析...

有沒有辦法逃避或禁用此測試部分爲一個XslPath

+0

好吧,我嘗試了它在xsl:text標籤內部和外部,我嘗試過使用!CDATA和$#nnn;編碼等..沒有固定它.. –

回答

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'}"/> 
+0

Thanl你!這解決了它,我推測我是一個小小的調整,但只是沒有;不知道哪一個! –