2014-11-13 110 views
0

似乎除IE之外的所有瀏覽器在使用Javascript進行XSLT轉換時都省略了xml聲明 - 即使樣式表在輸出標籤中指定不應該省略xml聲明。JavaScript XSLT轉換省略了xml聲明

有沒有辦法來防止這種情況發生?

+0

爲什麼您相關的聲明? –

回答

0

下面是與Firefox輸出XML聲明我測試用例:

var xmlDoc = new DOMParser().parseFromString('<root>foo</root>', 'application/xml'); 
 

 
var xslDoc = new DOMParser().parseFromString([ 
 
    '<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">', 
 
    '<xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="no"/>', 
 
    '<xsl:template match="/"><xsl:copy-of select="."/></xsl:template>', 
 
    '</xsl:stylesheet>'].join('\n'), 'application/xml'); 
 

 
var xsltProc = new XSLTProcessor(); 
 
xsltProc.importStylesheet(xslDoc); 
 

 
var resultDoc = xsltProc.transformToDocument(xmlDoc); 
 

 
var serializedXml = new XMLSerializer().serializeToString(resultDoc); 
 
console.log(serializedXml); 
 

 
var pre = document.createElement('pre'); 
 
pre.textContent = serializedXml; 
 
document.body.appendChild(pre);

+0

是的,它只適用於Firefox。它不適用於Safari,Chrome或Opera ... –