2016-11-23 9 views
1

私は、次のXMLファイルを生成し、Webサービスを使用するWeb UIを研究開発をしています:可変数の子ノードを読み込みますか?

<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 ...など、注文2が1つの製品を持って、3つの製品を提供しています)

私は特定の順序になっている製品の属性を読みたいです。

私はこれを試しましたが、すべての注文から商品を返します。

//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++; 

} 

どのように私は、[x]の順序である製品を得るのですか?

+0

ループし、次にその下の製品を得るために特定の順序ノードでgetElementsByTagNameのを呼び出します。 – CBroe

答えて

0

あなただけのための要素に「木throught」要素内のより深い取得する必要があります。各注文で商品を探します:

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>"; 
} 

さらに、要素が存在するかコードが機能しないかどうかを確認する必要があります。

短縮符号

全体の例:受注オーバーhttp://www.w3schools.com/code/tryit.asp?filename=FA3A1AU4NB57

orders = xmlDoc.getElementsByTagName("order"); 
for (i = 0; i < orders.length ;i++) { 

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

    for (j = 0; j < prods.length; j++){ 

    //here is Your product in prods[j] for one order "orders[i]" 

    } 
} 
+0

ありがとうございました!これは非常に助けになりました。 私は特定の属性を選択するためのコードをリンクさ [ここ](http://www.w3schools.com/code/tryit.asp?filename=FA3D16RLJEA9) –

関連する問題