2011-11-01 49 views
2

我的外部腳本導致了我的XSL模板,其中包含轉義的html特殊字符。我怎樣才能用XSLT把它輸出並輸出到最終文檔?使用XSLT轉換HTML實體

我已經逃過結果,disable-output-escaping="yes"不能幫我。

例如(結果來自外部腳本):

<!--376473658726587--> 
<a href="/">some text</a> 
+1

請出示你有什麼,我也許可以幫助你。 – Dabbler

回答

4

這種轉變

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="text"/> 
<xsl:strip-space elements="*"/> 

<xsl:template match="script"> 
    &lt;script> 
    <xsl:value-of select="normalize-space()"/> 
    &lt;/script> 
</xsl:template> 
</xsl:stylesheet> 

當這個XML文檔施加(你未能提供一個!) :

<script> 
&lt;!--376473658726587--&gt; 
&lt;a href="/"&gt;some text&lt;/a&gt; 
</script> 

產生想要的,正確的結果

<script> 
    <!--376473658726587--> <a href="/">some text</a> 
    </script> 
+0

這是個好主意,但我需要HTML輸出方法 – VeroLom

+0

@VeroLom:所以,您需要2步的XSLT處理,或者您需要編寫一個擴展函數,以便從您的XSLT代碼中進行調用,即可進行無縫操作。在XPath 3.0/XSLT 3.0之前沒有標準的轉義函數,但這些函數仍然只能用於草稿。 –