我的JavaScript代码正在进行Ajax调用以检索XML文档,而我很难从结果中提取特定节点。
返回的XML本质上是键/值对的集合,我想提取给定键的值。为了便于讨论,我们假设返回的XML如下所示:
<result>
<keyvaluepair>
<key>aaa</key>
<value>1234</value>
</keyvaluepair>
<keyvaluepair>
<key>bbb</key>
<value>5678</value>
</keyvaluepair>
</result>
我的Ajax调用如下所示:
$.ajax({
type: "POST",
contentType: "text/xml; charset=utf-8",
datatype: "xml",
processData: false,
url: "MyPage.aspx",
success: function (data, textStatus, xhr)
{
var myValue = parseInt($("???", data).text());
}
);
找到与给定键相关联的值的合适方法是什么,比如“bbb”?
答案 0 :(得分:2)
JQuery也解析XML,所以这样的东西应该有所帮助:
success: function (data, textStatus, xhr)
{
var myValue = $(data).find('key[value="bbb"]').next('value').text();
}
结果[value=]
无法在此处工作,因此请使用:contains
获取唯一值,或使用filter
完全匹配修剪后的文字内容:
使用contains
的示例:http://jsfiddle.net/TrueBlueAussie/uhramdmx/
或者更好,filter
:http://jsfiddle.net/TrueBlueAussie/uhramdmx/2/
var myValue = $(data).find('key').filter(function(){
return $.trim($(this).text()) == 'bbb';
}).next('value').text();