如何将这段XML转换为javascript集合?
我想转换如下所示的XML:如何将这段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>
<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>