如何将这段XML转换为javascript集合?

时间:2013-05-19 00:01:46

标签: javascript xml collections

我希望转换如下所示的XML:

<products>
   <product>
     <Name>Bill</Name>
     <ID>1</ID>
     <Age>19</Age>
   </product>
   <product>
     <Name>Jim</Name>
     <ID>2</ID>
     <Age>23</Age>
   </product>
   <product>
     <Name>Kathy</Name>
     <ID>3</ID>
     <Age>53</Age>
   </product>
</products>

INTO此格式:名称,ID,集合中的年龄

如下所示:

collection = [
'Bill-1-19',
'Jim-2-23',
'Kathy-3-53',
];

我认为最好的方法是使用XSLT样式表来输出它吗?我真的可以使用一些帮助,我现在已经试图解决这个问题几个小时了。

这是我到目前为止所做的:

<!DOCTYPE html>
<html>
<body>
<script>
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else // for IE 5/6
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET","after.xml",false);
xhttp.send();
xml=xhttp.responseXML;

var products = xml.getElementsByTagName("products");
var arr = [];
for (var key in products){
    var stringVal = "";
    var nodes = products[key].childNodes;
    for (var ele in nodes){  
        if(nodes[ele]){
           stringVal = stringVal + nodes[ele];
        }
    }
    arr.push(stringVal);
}
console.log(arr);

</script>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

没有经过测试,但这应该适用于IMO。 只需迭代XML列表并构建一个字符串

    var products = xml.getElementsByTagName(“products”);     var arr = [];     for(产品中的var键){         var stringVal =“”;         var nodes = products [key] .childNodes;         for(节点中的var ele){             如果(节点[ELE]){                stringVal = stringVal + nodes [ele];             }         }         arr.push(stringVal);     }     的console.log(ARR);