返回XML节点值

问题描述:

我需要从URL返回所有XML值。返回XML节点值

我以前使用的网址,它工作正常。

这是我到目前为止有:

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

     } 


    } 

它设法返回值适量:33个33个标记值

但它返回null为每一个。但是,XML文件包含每个标签的值。

感谢

+0

嘿,如果下面的答案帮助你,请标记为接受的答案。 –

+0

关于[您的其他问题](https://*.com/q/45935708/1218980),请不要在没有正当理由的情况下删除您的问题,这可能对未来某个人有用,这就是为什么SO质量好高。 –

基于一个答案question

XML元素的nodeValue属性始终是零。元素的值实际上存储在元素内的文本节点内,因此您需要再往下找一个孩子才能得到它。试试这个

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

我觉得你的脚本应该是这个样子与firstChild试图获得的价值时插入:

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真棒,很高兴听到它。不知道你是否看到我更新的答案,但我认为我的脚本的变化应该工作,尽管它迄今为止尚未测试。 –