我有一個網頁,在點擊鏈接時執行一些JavaScript。這個鏈接是:使用XSLT解碼HTML編碼的內容
<a
href="javascript:void(0)"
onclick="XsltTransform('category.xml','category.xslt');">Latest news</a>
的JavaScript是:
<script type="text/javascript">
function XsltTransform(xmlfile, xslfile) {
var xml = document.implementation.createDocument("", "", null);
var xslt = document.implementation.createDocument("", "", null);
xml.async = false;
xslt.async = false;
xml.load(xmlfile);
xslt.load(xslfile);
var processor = new XSLTProcessor();
processor.importStylesheet(xslt);
var XmlDom = processor.transformToDocument(xml)
var serializer = new XMLSerializer();
var output = serializer.serializeToString(XmlDom.documentElement);
var outputDiv = document.getElementById("contentbody");
outputDiv.innerHTML = output;
}
</script>
它處理的XML看起來非常像:
<Content>
<Body><p>It may have taken over 12 years</Body>
</Content>
以及處理這是一個簡單的XSL的XSL:值的說明:
<xsl:template match="/">
<p>
<xsl:value-of select="*/*/Body" disable-output-escaping="yes" />
</p>
</xsl:template>
T他的問題是,無論我在'value-of'的'disable-output-escaping'屬性中使用什麼值,我總是會得到這個呈現(如在Firefox Web開發者生成的源視圖中所見):
<p>It may have taken over 12 years
我想要解碼的HTML代碼塊在渲染時被編碼,我的印象是這是禁用輸出轉義所允許的。
如何將這個非常原始的XML再次變成真正的HTML?
您是否在樣式表中將輸出元素設置爲html? – Treemonkey