2010-05-09 90 views
4

我试图如何使用Javascript保存xml文件?

1)加载使用javascript作为对象的XML文件,说note.xml

2),则对象保存到一个新的xml文件,说note_new.xml

我做1),但没有2)

我试图使用方法Save()做2)。我失败后,我检查了ms网站,他们说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> 

更新:

看来,这是关系到安全问题。我向那些有经验的程序员道歉,因为这似乎是一个新手问题。

+0

你想保存在哪里?客户端服务器? – 2010-05-09 13:50:10

+0

谢谢你,oedo,你能告诉我我需要做什么吗?我真的对我以前的问题有很好的答案。我应该对这些答案做些什么吗?如果是这样......去哪里?对不起,我对这个网站真的很陌生... – john 2010-05-09 14:01:35

+0

对尼克:谢谢!我试图做的只是在我的电脑上创建一个简单的界面,并且只能由我自己使用。由于我想使用xml作为数据存储和JavaScript作为驱动引擎,因此我寻找了上传和下载的方法。似乎微软只允许VB执行保存......有没有支持其他语言的save()的安全原因? 谢谢。 – john 2010-05-09 14:05:16

回答

6

您的问题是:javaScript没有输入/输出(I/O)API,因为它是客户端脚本语言,因此无法通过服务器访问文件系统。您需要使用服务器端脚本语言将数据保存到服务器。有可能会破解你的问题客户端,但他们可能要么unsave或其他越野车。 (btw:什么api是save方法成员?你是否做到了这一点?)

你可以做的是将数据临时保存到任何DOM元素(例如窗口或javaScript)对象。然而,没有办法使这些变化永久。

在你的情况下,寻找PHP脚本可能是最好的方法。

+0

很好的答案。我试图避免安装一个附加软件......谢谢! – john 2010-05-09 15:19:08

+1

嗨,不客气! PHP非常容易访问。所以,不用担心。 对于它的价值:对于更复杂的应用程序,完全没有办法学习服务器端脚本,因为您需要高级编程语言(如Java)(JSP/Servlets)或C#(ASP /)的功能。 NET)为您的应用程序的逻辑。如果您以智能的方式将责任分离到客户端脚本(用于用户交互),那么这将使事情变得更容易(即,从长远角度来看,它更不复杂,更有条理)。所以,真的没有什么好的理由。 – FK82 2010-05-09 20:20:29

+0

再一次,谢谢你的精彩经验!我将尝试将PHP引入图片。祝你有个美好的夜晚! – john 2010-05-09 23:09:25