Javascript XSLT转换省略了xml声明

时间:2014-11-13 21:45:52

标签: javascript xml xslt browser

似乎除了IE之外的所有浏览器在Javascript中进行XSLT转换时都省略了xml声明 - 即使样式表在输出标记中指定不应省略xml声明。

有没有办法防止这种情况发生?

1 个答案:

答案 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);
&#13;
&#13;
&#13;