如何使用Javascript保存XML文件?

7
我尝试使用JavaScript将XML文件作为一个对象载入,例如note.xml。然后将该对象保存到新的XML文件中,例如note_new.xml。我完成了第一步但是未能成功地实现第二步。我尝试使用save()方法来达到这个目的。在失败后,我查看了微软官网并得知save()方法不被支持...请问有人能指导我如何进行保存吗?谢谢!以下是代码:
<html>
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<h1>W3Schools Internal Note</h1>
<p><b>To:</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span>

<script type="text/javascript">
if (window.ActiveXObject){
alert("there is ActiveXObject");
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false; 
xmlDoc.load("note.xml"); 
}else{
alert("i am not withActiveXObject!");
xhttp=new XMLHttpRequest();
xhttp.open("GET","note.xml",false);
xhttp.send("");
xmlDoc=xhttp.responseXML;
}
xmlDoc.save("note_new.xml"); 
</script>

</body>
</html>

更新:

看起来这与安全问题有关。我向那些经验丰富的程序员道歉,因为我匆忙提出了这个问题,似乎是一个新手问题。


你想把它保存在哪里?客户端,服务器? - Nick Craver
谢谢你,Oedo。你能告诉我需要做什么吗?我之前得到了非常好的答案。我需要对这些答案做些什么吗?如果需要...去哪里?抱歉,我真的很新,不太懂这个网站。 - john
给Nick:谢谢!我尝试做的事情实际上只是在我的电脑上创建一个简单的界面,并仅自己使用它。由于我想使用XML作为数据存储和JavaScript作为驱动引擎,因此我寻找了上传和下载的方法。似乎微软只允许VB进行保存...是否有安全原因不支持其他语言中的save()?谢谢。 - john
@user311884 - 选出你认为最好的答案,然后点击相关联的勾号来接受它。 - NG.
是的,我收到了!它们都是非常好的答案!谢谢,SB和oedo!! - john
1个回答

8
你的问题是:JavaScript没有输入/输出(I/O)API,因为它是一种客户端脚本语言,因此无法通过服务器访问文件系统。你需要使用服务器端脚本语言将数据保存到服务器。可能有一些客户端解决方案可以解决你的问题,但它们可能不安全或存在其他问题。(顺便问一下,save方法成员属于哪个API?你是自己编的吗?)
你可以将数据暂时保存到任何DOM元素(例如window或JavaScript对象)中。然而,这些更改无法永久保存。
在你的情况下,研究PHP脚本可能是最好的选择。

好的回答。我一直在尝试避免安装额外的软件...谢谢! - john
1
你好,欢迎!PHP非常易于学习,所以不用担心。值得一提的是:对于更复杂的应用程序,你必须学习服务器端脚本编程,因为你需要高级编程语言(如Java(JSP/Servlets)或C#(ASP/.NET))的能力来处理应用程序的逻辑。如果你在客户端脚本(用于用户交互)和服务器端脚本之间合理分配责任,那么这将使事情变得更加容易(即更少混乱,更有结构性)长期来看。因此,真的没有什么好理由回避它。 - FK82
再次感谢您的精彩建议!我会尝试加入PHP。祝你晚上愉快! - john
欢迎。祝你的项目好运,并感谢你接受我的答案! - FK82

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接