我有以下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
,尝试循环但无效。有人可以对此有所了解吗?
答案 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); }
});