使用 jQuery 在 XML 中组织数据

Posted

技术标签:

【中文标题】使用 jQuery 在 XML 中组织数据【英文标题】:Organizing Data in XML with jQuery 【发布时间】:2012-03-19 18:54:18 【问题描述】:

我需要将大量信息从我的网站发送到我的网络服务器。这些信息包含来自多个用户的数据(名字、姓氏等)。

在通过 AJAX 请求将这些信息发送到网络服务器之前,我必须将它们从表格中提取出来并以某种方式组织它们。

现在我正在考虑两种不同的可能性:

1:用javascript/jQuery将数据组织成一个XML文档并发送到网络服务器或...

XML 文档

<create>
    <customer>
        <first-name>foo</first-name>
        <last-name>bar</last-name>
        ...
    <customer>
</create>

2:将数据存储在一个字符串中,稍后使用 php 在网络服务器上组织它们。

字符串:

   "first-name='foo';last-name='bar'"

我已经尝试过这个方法来创建一个 XML 文档...

    var xmlDocument = $.parseXML('<create/>');
    var customer = xmlDocument.createElement('customer');
    xmlDocument.documentElement.appendChild(customer);
    var firstName = xmlDocument.createElement('first-name');
    xmlDocument.documentElement.appendChild(firstName);

...但它并没有真正奏效。我使用xmlDocument.find('first-name') 来检查它是否正确构建但失败了。也许我访问 XML 文档有误。

我也尝试过使用jQuery.parseXML();,但也没有用。

那么,创建/访问 XML 文档、创建/删除/编辑节点和文本节点以及在 JavaScript/jQuery 中设置/获取属性的正确方法是什么。

您能否建议我使用我提到的哪个机会?也许还有一个我还没有考虑过。如果您能添加一些示例代码,我将不胜感激。

【问题讨论】:

【参考方案1】:

你应该做类似的事情

var xmlDocument = $('<create/>');
var customer = $('<customer/>');
xmlDocument.append(customer);
var firstName = $('<first-name/>').text('john');
xmlDocument.append(firstName);

对应的xml:

<create>
  <customer></customer>
  <first-name>john</first-name>
</create>

在这里找到一个元素xmlDocument.find('first-name').text()小提琴http://jsfiddle.net/YpfmD/

这正是您创建 html 元素的方式(毕竟 html 是 XML)

如果你需要创建带有属性的元素,你可以这样做

 $('<name/>',  first: "john", second: "doe");
 //this creates <name first="jhon" second="doe"></name>

【讨论】:

如何访问节点并获取值? @sebbl.sche justdo xmlDocument.find('first-name').text()(我更新了我的答案)【参考方案2】:

为什么不能使用服务器端脚本(如 PHP)创建字符串(xml 或其他)?这样就容易多了。

但如果您需要使用 jquery/javascript,我建议您使用 JSON 方法。

看看这里:

jquery .serializeArray()

jquery .parseJSON

你可以试试这个?

【讨论】:

是否也可以在一个 JSON 对象中存储多个用户?比如:var obj = $.parseJSON('"user1" : "first-name" : "foo", "last-name" : "bar", "user2" : ... '); JSON 只是您能想到的几乎任何类型的对象的字符串表示形式。它与 XML 非常相似,因为它以明确定义的结构存储数据,因此可以轻松地再次从中提取信息。它在 ajax 圈子中也很流行,因为大多数时候它占用的空间比 XML 少。去阅读它并玩弄它。

以上是关于使用 jQuery 在 XML 中组织数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 从 XML 文件中显示数据

使用 Jquery 从 XML 数据创建对象数组

jquery 在IE浏览器中无法使用find()或children()遍历xml数据

jquery 判断是否dom对象

PyQuery: Python的jQuery

如何使用 jQuery 从子元素中获取数据以在 xml api 中查找其他子元素?