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

时间:2013-12-02 13:09:48

标签: javascript jquery xml

我在$(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的价值。

这里有什么问题?

2 个答案:

答案 0 :(得分:1)

您想使用attribute selector

类似于:

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

修改

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

答案 1 :(得分:0)

首先,使用 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 Selectorchart属性选择chart_num元素:

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

此外,您可能会发现obtain an array所有chart_num属性值都很有用:

var $charts = $xml.find('chart');

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