【问题标题】:Javascript XSLT transformation omits the xml declarationJavascript XSLT 转换省略了 xml 声明
【发布时间】:2014-11-13 21:45:52
【问题描述】:

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

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

【问题讨论】:

  • 为什么声明与您相关?

标签: javascript xml xslt browser


【解决方案1】:

这是一个使用 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2011-07-04
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    相关资源
    最近更新 更多