我确信这是一个非常直截了当的问题!我有一个xml文档,并且使用AJAX,我想从具有相同名称的标记中获取值到数组中。 XML:
<data>
<instance>
<term>Dog</term>
<clicks>11235</clicks>
</instance>
<instance>
<term>Cat</term>
<clicks>6309</clicks>
</instance>
</data>
我的Javascript:
console.log(xml.getElementsByTagName("clicks")[0].childNodes[0].nodeValue);
这似乎只返回第一个值。你如何归还他们?
答案 0 :(得分:0)
您可以使用jQuery获取所有标记,然后使用.each()
获取所有值:
$(xml).find('clicks').each(function(){
console.log($(this).html());
});
或者如果你想获得一个数组,你可以使用.map()
函数:
var list = $(xml).find('clicks').map(function(){
return $(this).html();
}).get();
使用d3.js你可以这样做:
在DOM <div></div>
var list = d3.select('div')
.html(xml) // set the xml content
.selectAll('clicks')
.each(function(){
console.log(this.innerHTML);
});
console.log(list); //you can do what you want with all clicks elements
答案 1 :(得分:0)
试试我在java中写的,我想你必须改变数组部分。希望这有帮助。
NodeList clicks = xml.getElementsByTagName("clicks")
int[] clickArray = new int[clicks.getLength()];
for(int i=0; i<clicks.getLength();i++){
clickArray[i] = clicks[i].childNodes[0].nodeValue;
}
答案 2 :(得分:0)
function test(){
var clicks = xml.getElementsByTagName("clicks");
var result = new Array();
foreach(var c in clicks){
console.log(c);
result.push(c.childNodes[0].nodeValue);
}
return result;
}
这应该打印所有&#34;点击&#34;标签。在你的结果数组中现在都是值,但请注意,如果标签&#34;结构&#34;永远是你上面发布的那个