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

标签 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>

了解此格式:集合中的姓名、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>

最佳答案

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

var 产品 = xml.getElementsByTagName("产品"); var arr = []; for (var key in products){ var stringVal = ""; var 节点 = 产品[key].childNodes; for (节点中的 var ele){ 如果(节点[ele]){ stringVal = stringVal + 节点[ele]; } } arr.push(stringVal); } 控制台.log(arr);

关于javascript - 如何将这段 XML 转换为 JavaScript 集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16630193/

相关文章:

objective-c - XML 文件中的奇怪字符(来自用户输入?)

android - 禁用小字符 EditText InputType

java - 双括号集合初始值设定项中的未定义构造函数错误

java - Freemarker 'Collection.contains' 功能

java - 如果数组列表中有多种数据类型,如何使用java中的每个循环?

javascript - Vue js 2 和 Axios 发布请求 - 表单

javascript - SignalR 问题 : Cannot connect to Hub class

ios - 在 Swift 中使用 Alamofire 处理 XML 数据

javascript - HTML5 Canvas 的多点触控

javascript - Jquery 通过多个属性和值过滤数组