2017-08-24 7 views
1

URLからすべてのXML値を返す必要があります。XMLノード値を返す

以前はURLを使用していましたが、正常に動作しています。 33個のタグ33個の値

が、それはそれぞれのためにnullを返すだ:

function displayXML(xml) { 
     var devices = xml.getElementsByTagName("device"); 

     for (var i = 0; i < devices.length; i++) { 
      var deviceDetails = devices[i].children; 

      for (j = 0; j < deviceDetails.length; j++) { 
       console.log(devices[i].childNodes[j].nodeValue); 
      } 

     } 


    } 

は、それが値の右の量を返すように管理します。

は、これは私がこれまで持っているものです。ただし、XMLファイルには各タグの値が含まれています。

おかげ

+0

ねえ、以下の答えはあなたが受け入れ答えとしてマークしてください助け場合:私はあなたのスクリプトが値を取得しようとしたときに挿入firstChildとこのようになるはずだと思う。この

var devices = xml.getElementsByTagName("device")[i].firstChild.nodeValue; 

を試してみてください。 –

+0

[あなたの他の質問](https://stackoverflow.com/q/45935708/1218980)に関して、正当な理由なしにあなたの質問を削除しないでください、将来誰かに役立つかもしれません。非常に高い。 –

答えて

2

このquestion

への回答に基づいて、XML要素のnodeValueプロパティは常にnullです。要素の値は要素内のテキストノード内に実際に格納されるため、取得するにはもう1人の子供を下げる必要があります。

function displayXML(xml) { 
     var devices = xml.getElementsByTagName("device"); 

     for (var i = 0; i < devices.length; i++) { 
      var deviceDetails = devices[i].children; 

      for (j = 0; j < deviceDetails.length; j++) { 
       console.log(devices[i].childNodes[j].firstChild.nodeValue); 
      } 

     } 
    } 
+0

それはうまくいった、ありがとう。 – Kieran

+0

@KieranMelia素晴らしい、それを聞いてうれしい。あなたが私の更新された答えを見たかどうかは分かりませんが、私はあなたのスクリプトの変更がこれまでテストされていないにもかかわらずうまくいくと思います。 –

関連する問題