获取具有特定属性的xml的文本

Get text of an xml with a certain attribute

本文关键字:xml 文本 属性 获取      更新时间:2024-01-14

我在$(c):中得到了这个xml

<response name="GetStatistics"><chart chart_num="0">500</chart><chart chart_num="1">1000</chart></response>

我正在尝试获取图表的值。

我试过了:

var val = $(c).find('command[chart_num='+j+']').text();
alert ('command[chart_num='+j+'] ' + val);

但在警报中,我根本没有得到val的值。

这里怎么了?

您想要使用属性选择器。

所以类似于:

var val = $(c).find('chart[char_num=' + j + ']').text();

编辑:

很抱歉,您正在使用属性选择器。问题是将命令切换到图表,如问题评论中所述。

首先,使用jQuery的parseXML()函数获取XML文档:

var xml = "<response name='GetStatistics'>"
  + "<chart chart_num='0'>500</chart>"
  + "<chart chart_num='1'>1000</chart>"
  + "</response>";
var xmlDoc = $.parseXML(xml);
var $xml = $(xmlDoc);

然后,使用Attribute Equals Selector通过chart_num属性选择chart元素:

var j = 1;
var chartNumValue = $xml.find('chart[chart_num=' + j + ']').text();
// chartNumValue = 1000

此外,您可能会发现获得所有chart_num属性值的数组很有用:

var $charts = $xml.find('chart');
var chartNums = $.map($charts, function(el) {
    return $(el).attr("chart_num");
});