2014-11-13 136 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 ... –