2012-02-29 35 views
3

我有一個網站,用戶可以在表格中輸入一些信息。通過點擊一個按鈕,這些信息應該存儲在XML文檔中並通過AJAX發送。在jQuery中創建和發送XML文檔

我已經試過這個來創建一個XML文檔,但它沒有解決。

var xmlDoc = '<?xml version="1.0" encoding="iso-8859-1"?>'; 
xmlDoc.append('<customer></customer>'); 

如何創建XML文檔並追加更多節點並設置屬性?

+0

首先你需要創建一個XMLDocument對象......不是字符串。 – thescientist 2012-02-29 15:07:18

回答

9

你不能在字符串上使用jQuery append方法,它會拋出js錯誤。

你可以嘗試這樣的事情。

var xmlDocument = $.parseXML("<root/>"); 
var foo = xmlDocument.createElement('foo'); 
foo.appendChild(document.createTextNode('bar')); 
xmlDocument.documentElement.appendChild(foo); 

另一種方法是創建頁面上可用的基於表格信息的XML字符串,然後用$.parseXML()方法來創建XML文檔。

+0

'var xmlDocument = $ .parseXML(「」);':-P – 2012-02-29 15:13:06

+0

@Rocket - 這將解析XML字符串,然後我們可以使用jQuery apis來遍歷它。但OP正在創建'Xml'文件。 – ShankarSangoli 2012-02-29 15:15:20

+0

它實際上返回一個'XMLDocument'。 http://api.jquery.com/jQuery.parseXML/ – 2012-02-29 15:17:38

1

jQuery不處理這個給你嗎?

var root = $('<ROOT></ROOT>'); 
root.append("<customer/>") 
var customer = root.children().eq(0); 
console.log(customer); 
console.log(root.html()); 

輸出:

[customer] 
<customer></customer> 
+0

返回一個jQuery對象,而不是XMLDocument,不知道這裏的差異是否重要 – 2012-02-29 15:18:08

+0

如果XML是通過Ajax發送的,那麼它會是無論如何都是以字符串形式發送的? – 2012-02-29 15:19:25

+0

沒錯,它是w應該作爲字符串發送(而不是XMLDocument)。 – 2012-02-29 15:26:03