2012-02-29 30 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