2011-08-22 60 views

回答

4

不適用於瀏覽器JavaScript,不能。您需要某種服務器才能爲您寫入文件系統。你總是可以用JS構建文件,然後通過AJAX發送給服務器來編寫。

+1

好吧,所以沒有客戶端,但與服務器端JavaScript?任何想法如何,或與女巫圖書館我可以做到嗎? – flopifal

+1

「服務器端JavaScript」不存在。如果您想在JavaScript中生成XML,則必須進行字符串構建,或者可以嘗試利用DOM來獲取XML。如果你想生成服務器端並使用PHP,請查看SimpleXML。 http://stackoverflow.com/questions/143122/using-simplexml-to-create-an-xml-object-from-scratch –

+1

我不是指乾淨的JavaScript的服務器端,我的意思是JavaScript與服務器端的框架。我想在客戶端目錄中創建一個文件,他可以打開,並且文件要與ext XML一起使用。 – flopifal

4

使用jQuery.parseXML解析一個簡單的容器字符串:

var xml = '<?xml version="1.0"?><root/>'; 
var doc = jQuery.parseXML(xml); 

然後你就可以正常使用jQuery的DOM操作追加節點到XML文檔。一旦你需要序列化最終文件,你可以使用這個question的答案。

+2

這是讀取,而不是創建文件 – flopifal

+1

它從頭開始創建一個新的XML文檔。但是,如果您處於瀏覽器環境中,則無法將其寫入文件系統。但是你可以將它提交給可以持久保存的服務器。 – emboss

+1

我喜歡這個主意,但這有一個引用不匹配 –

0

您可以創建這樣一個文件:

var doc = document.implementation.createDocument(namespace,rootnode,doctype); 
doc.documentElement.appendChild(somenode); 

然後它序列化到一個字符串:

new XMLSerializer().serializeToString(doc); 

但也只會是在內存中。你還想用它做什麼?

+0

所以,這會創建一個文件?例如,我可以打開一些目錄或其他?或者它只會將字符串轉換爲有效的xml – flopifal

+2

它在內存中創建文檔,而不是文件。運行瀏覽器的JavaScript無法將文件寫入文件系統。 – jiggy

0

鑑於我自己學習XML,這可能是一個非法的答案,因爲它包含一個可能的問題。

這就是說,我敢肯定,XML文檔可以發送到瀏覽器來顯示。這可以由最終用戶明確保存。

2

你的問題比看起來更復雜。讓我們把它分解成兩部分:

  1. 我可以用javascript創建一個文件嗎?
  2. 我可以使用jQuery/javascript將XML寫入該文件嗎?

不幸的是,第一個問題的答案是否定的。您無法使用在瀏覽器中運行的JavaScript來訪問文件系統。這有安全隱患,主流瀏覽器不會允許。

對第一個問題的回答使得第二個問題沒有實際意義。您可以使用javascript創建XML,但是您將無法編寫它。

如果您提供了更多關於您想要執行此操作的原因的信息,可以找到解決問題的其他解決方案。