Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将这段XML转换为javascript集合?_Javascript_Xml_Collections - Fatal编程技术网

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

如何将这段XML转换为javascript集合?,javascript,xml,collections,Javascript,Xml,Collections,我想转换如下所示的XML: <products> <product> <Name>Bill</Name> <ID>1</ID> <Age>19</Age> </product> <product> <Name>Jim</Name> <ID>2</ID>

我想转换如下所示的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>
我认为最好的方法是使用输出正确的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>

if(window.XMLHttpRequest)
{
xhttp=newXMLHttpRequest();
}
else//适用于IE 5/6
{
xhttp=新的ActiveXObject(“Microsoft.XMLHTTP”);
}
open(“GET”,“after.xml”,false);
xhttp.send();
xml=xhttp.responseXML;
var products=xml.getElementsByTagName(“产品”);
var-arr=[];
对于(var关键产品){
var stringVal=“”;
var nodes=products[key].childNodes;
对于(节点中的变量ele){
if(节点[ele]){
stringVal=stringVal+节点[ele];
}
}
arr.push(stringVal);
}
控制台日志(arr);

没有对此进行测试,但在我看来应该可以。 只需迭代XML列表并构建一个字符串

var products=xml.getElementsByTagName(“产品”); var-arr=[]; 对于(var关键产品){ var stringVal=“”; var nodes=products[key].childNodes; 对于(节点中的变量ele){ if(节点[ele]){ stringVal=stringVal+节点[ele]; } } arr.push(stringVal); }
控制台日志(arr);这真的是你想要的吗。。。将姓名、id和年龄填入一个字符串?如果您打算在Javascript中使用它,那么作为一个对象集合,每个值都有字段,不是更好吗?是否需要使用xml?如果灵活,我将使用JSON,因为它更容易转换为JavaScript对象。如果您愿意,我可以使用在线工具将XML转换为JSON。基本上,我只需要通过任何方式将XML数据转换成该集合格式。这是javascript,对吗?如何执行此代码?在html页面中添加脚本标记
<!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>