Javascript 读取变量编号的子节点?

Javascript 读取变量编号的子节点?,javascript,xml,Javascript,Xml,我正在开发一个Web UI,它使用生成以下XML文件的Web服务: <datas> <order> <order_ref>...</order_ref> <order_time>...</order_time> <products> <product> <sku>...</sku> <qu

我正在开发一个Web UI,它使用生成以下XML文件的Web服务:

<datas>
  <order>
    <order_ref>...</order_ref>
    <order_time>...</order_time>
    <products>
        <product>
          <sku>...</sku>
          <quantity>...</quantity>
          <price>...</price>
          <title>...</title>
        </product>
        <product>
          <sku>...</sku>
          <quantity>...</quantity>
          <price>...</price>
          <title>...</title>
        </product>
    </products>
  </order>
  <order>...</order>
  <order>...</order>
  <order>...</order>
  <order>...</order>
</datas>

...
...
...
...
...
...
...
...
...
...
...
...
...
...
如您所见,我有一个XML文件,其中包含多个订单,可以是数量可变的订单,以及每个订单中数量可变的产品。(例如,订单1有3种产品,订单2有1种产品,等等)

我想阅读特定订单中产品的属性

我试过了,但它会退回所有订单的产品

//var orders = xmlDoc.getElementsByTagName("order");

var products = xmlDoc.getElementsByTagName("product");
for (prodIndex = 0; prodIndex  < products.length; prodIndex++) {
    document.getElementById("data"+n).innerHTML = xmlDoc.getElementsByTagName('sku')[prodIndex].childNodes[0].nodeValue;
        n++;

}
//var orders=xmlDoc.getElementsByTagName(“订单”);
var products=xmlDoc.getElementsByTagName(“产品”);
对于(prodIndex=0;prodIndex

如何获得订单中的产品[x]?

您只需要“通过树”深入到订单元素的内部。然后在每个订单中查找产品:

orders = xmlDoc.getElementsByTagName("order");

for (i = 0; i < orders.length ;i++) {
  txt += orders[i].nodeName + ": <br>";

  prod = orders[i].getElementsByTagName("products"); 
  prods = prod[0].getElementsByTagName("product");

  for (j = 0; j < prods.length; j++){
    txt += prods[j].nodeName + "<br>";

  }

  txt += "<br>";
}
订单=xmlDoc.getElementsByTagName(“订单”); 对于(i=0;i”; prod=订单[i].getElementsByTagName(“产品”); prods=prod[0]。getElementsByTagName(“产品”); 对于(j=0;j”; } txt+=“
”; }
此外,您应该检查元素是否存在或代码是否无法工作

缩短代码

全部示例:

订单=xmlDoc.getElementsByTagName(“订单”); 对于(i=0;i您只需要“通过树”深入到元素内部的order元素。然后在每个订单中查找产品:

orders = xmlDoc.getElementsByTagName("order");

for (i = 0; i < orders.length ;i++) {
  txt += orders[i].nodeName + ": <br>";

  prod = orders[i].getElementsByTagName("products"); 
  prods = prod[0].getElementsByTagName("product");

  for (j = 0; j < prods.length; j++){
    txt += prods[j].nodeName + "<br>";

  }

  txt += "<br>";
}
订单=xmlDoc.getElementsByTagName(“订单”); 对于(i=0;i”; prod=订单[i].getElementsByTagName(“产品”); prods=prod[0]。getElementsByTagName(“产品”); 对于(j=0;j”; } txt+=“
”; } 此外,您应该检查元素是否存在或代码是否无法工作

缩短代码

全部示例:

订单=xmlDoc.getElementsByTagName(“订单”); 对于(i=0;i循环查看订单,然后在特定订单节点上调用getElementsByTagName以获取其下的产品。循环查看订单,然后在特定订单节点上调用getElementsByTagName以获取其下的产品。谢谢!这帮了大忙。我链接的代码选择了一个特定的属性谢谢!这帮了大忙。我链接代码以选择特定属性