使用XMLDom对象save()在我的机器上保存XML文件

时间:2011-05-18 17:00:08

标签: javascript xml

我无法保存到计算机上的xml文件中。 我注意到节点值在xml文件中被临时更改但不是永久性的。

P.S:这只是一个带有javascript的简单HTML文件

它给了我一个错误“Permission Denied”

function viewBookDetails() {
var xmlDoc = xmlLoader("cart.xml");

//var x = xmlDoc.getElementsByTagName("dogHouse")[0];
var x = xmlDoc.documentElement;

var newel = xmlDoc.createElement("essy");
x.appendChild(newel);

alert(x.xml);
xmlDoc.save("cart.xml");
}

是不是可以在我的机器上保存xml文件?

谢谢,

1 个答案:

答案 0 :(得分:1)

通常,浏览器JavaScript没有I / O API,无法读取或写入客户端文件系统,因为这可能是一个安全漏洞。我之前没有看到或使用save()方法,但它看起来像是an IE specific extension to the XML DOM。如果您必须使用它,this thread might provide the solution,那么OP建议的答案是:

  

我没有证明你的代码,但这是你可能想要尝试的东西。我正在黑暗中拍摄你在Windows操作系统上使用它,因为你正在使用IE和错误的声音。只需获取您拥有的html文件并将其重命名为whatever.hta,然后它就可以写入xml文件并保存。

此外,documentation for the method在参数为字符串时(如代码段中所示)说明以下内容:

  

<强>字符串
  指定文件名。这必须是文件名而不是URL。如有必要,将创建该文件,并且内容将完全替换为已保存文档的内容。此模式不适用于安全客户端,例如Microsoft Internet Explorer。


从处理相同问题的论坛帖子(下面的链接)中,我收集了以下信息:

  • 这是IE特定的扩展名,因此仅适用于IE
  • 显然存在安全限制,因此您无法“开箱即用”
  • 经常出现的一种解决方法是将文件扩展名重命名为.hta(超文本应用程序),而不是.html
  • 我不确定但是通过更改应用程序运行的安全区域的权限可能还有一些解决方法

<强>参考文献: