2016-10-21 67 views
0

我在XSLT此代碼,XSLT替換<跨越與新行 - ><跨度

<xsl:template match="/"> 
        // some truncated js code here 
        for (var i=0 ; i &lt; arrIdentifiers.length ; i++) { 
         $("#list").append('<li class="ui-widget-content"><span class="sort-handle">&#9776;</span>'+arrIdentifiers[i]+'</li>'); 
         } 
        // some truncated js code here 
</xsl:template> 

由於某種原因,所述輸出是打破到新管線 (見跨度如何在新行)

這是造成一個JS錯誤..

    for (var i=0 ; i &lt; arrIdentifiers.length ; i++) { 
         $("#list").append('<li class="ui-widget-content"> 
         <span class="sort-handle">&#9776;</span>'+arrIdentifiers[i]+'</li>'); 
         } 

反正我可以指示模板不處理內部HTML?

+0

將內容放入[CDATA](http://stackoverflow.com/q/2784183/5221149):'<![CDATA [... text here .. 。]]>' – Andreas

回答

0

你不說你正在使用哪個XSLT處理器(關鍵字xerces肯定是不相關的)。你也不會說你的xsl:output選項是什麼,但我會懷疑你明確或隱含地使用method = html和indent = yes。

通過這些序列化選項,序列化器可以在特定的上下文中添加空格(包括換行符)。不允許將其添加到腳本元素中:不清楚您的代碼是否在腳本元素中結束。但是,如果你要以這種方式在Javascript文字中包含HTML元素,你將會遇到這樣的問題。轉義它會更安全,或者使用純粹的Javascript DOM方法(或jQuery或其他)。