繁体   English   中英

XML-将标签中的所有值放入数组

[英]XML - get all values from tags into an array

我敢肯定,这是一个非常简单的问题! 我有一个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); 

这似乎只返回第一个值。 您如何将它们全部退还?

您可以使用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>定义一个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 

尝试我用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;
}
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;
}

这应该打印所有“点击”标签。 现在,结果数组中的所有值都可以,但是请注意,如果标签“ structure”始终是您在上面发布的标签,则这将起作用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM