如何将E4X XML原语编写到Mozilla中的新text / xml窗口?

时间:2011-06-20 08:11:06

标签: javascript xml e4x

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

我希望Firefox打开一个contentType text / 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,因此所有标记都会自然地呈现错误。 From this fixed bug似乎document.open创建了正确的contentType,但document.write将其搞砸了。

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

1 个答案:

答案 0 :(得分:2)

如果您只是尝试使用XML打开新标签页:

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

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