使用jQuery从XML文档中检索值

时间:2016-01-15 11:38:33

标签: jquery xml

我有以下XML,在发出AJAX请求后返回给我。

<entry xml:base="url" xmlns="http://www.w3.org/2005/Atom"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<id>URL</id>
<category term="SomeCategory" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"></category>
<link rel="edit" title="Table" href="Table(56)">
<link rel="SomeURL" type="application/atom+xml;type=entry" title="table" href="table(56)/table1">
<link rel="SomeURL" type="application/atom+xml;type=entry" title="table" href="table(56)/table2">
<link rel="SomeURL" type="application/atom+xml;type=feed" title="table" href="table(56)/table3">
<link rel="SomeURL" type="application/atom+xml;type=entry" title="table" href="table(56)/table4">
<title></title>
<updated>2016-01-16T02:35:51Z</updated>
<author>
    <name></name>
</author>
<content type="application/xml">
    <m:properties>
        <d:NewlyCreatedId m:type="Edm.Int32">56</d:NewlyCreatedId>
    </m:properties>
</content>

我试图使用jQuery从中获取值56,这是我在AJAX方法中的成功方法:

success: function (data) {
    var selectedId = data.find('d:NewlyCreatedId').val();
    alert(selectedId);
}

但这会产生错误:

  

未捕获TypeError:data.find不是函数

有人可以建议我如何提取这个XML文档的价值。

*更新*

我已经尝试过在答案中提出的建议,但现在我在提醒所选的ID时返回null。

在我的成功方法中,我现在有了这个:

var selectedId = $(data).find('d\\:NewlyCreatedId').text();

使用完整的XML文档更新了问题

*更新*

我一整天都在争吵,我将我的ajax方法中的数据类型更改为xml,尝试循环但无效。有人可以对此有所了解吗?

2 个答案:

答案 0 :(得分:1)

您需要将data转换为jQuery对象才能调用find()。另请注意,您需要转义标记名称中的:,并且需要使用text()从节点获取1值,而不是val()。试试这个:

success: function (data) {
    var selectedId = $(data).find('d\\:NewlyCreatedId').text();
    alert(selectedId);
}

答案 1 :(得分:1)

或者您也可以将dataType选项传递给$.ajax请求:

$.ajax({
  url: '/x.xml',
  dataType: 'xml',
  success: function (xmlData) { console.log(xmlData); }
});