如何在Mozilla中将E4X XML原语写入新的text/XML窗口

How to write an E4X XML primitive to a new text/xml window in Mozilla?

本文关键字:XML text 窗口 原语 Mozilla 中将 E4X      更新时间:2023-09-26

我正在编写一个小型浏览器端Javascript,它可以从文件中解析XML并对其进行修改。理想情况下,输出是.XML文件,但当然,让JS客户端编写文件几乎是不可能的,所以我放弃了这一点。

我希望Firefox打开一个新的contentTypetext/xml窗口,其中包含我的序列化xml:

var xmlDoc = new XML(SourceXMLString); //SourceXMLString is read from an xml text file
output = window.open("");
output.document.open("text/plain");
output.document.write(xmlDoc.toXMLString());
output.document.close();

然而,任何document.write实例似乎都将contentType设置为text/html,因此所有标记都会自然地呈现错误。从这个修复的错误来看,document.open似乎创建了正确的contentType,但document.write把它搞砸了。

  • 这只需要在Firefox 2+中工作
  • 服务器端不是一个选项
  • 我选择了Javascript&Mozilla,因为ECMAScript支持XML

如果您只是想用XML:打开一个新的选项卡

open("data:application/xml," + encodeURIComponent(xmlDoc.toXMLString()));

如果希望用户能够下载XML,请使用application/octet流而不是application/XML。