2010-05-09 68 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