2012-08-03 163 views
1

我似乎无法在JavaScript中找到任何解决方案,因为我不想使用jQuery。我正在尝试从xml文档中获取日期文本。我有以下代码,但是我得到的错误是无法从undefined中读取长度。我究竟做错了什么?获取xml节点文本

var request, xmldocument, date, xmlDate; 
request = new XMLHttpRequest(); 
request.open("GET", "http://XXXXX/rss.php", true); 
request.onreadystatechange = function() { 
    if (request.readyState == 4) { 
     // xml document 
     xmldocument = request.responseXML; 
     // dates from xml document 
     date = xmldocument.getElementsByTagName("pubDate"); 
     // loop over dates 
     for (count = 0; count <= date.childNodes.length; count++) { 
      // text of date node 
      xmlDate = date.childNodes[i].nodeValue; 
      // read out text 
      console.log(xmlDate); 
     } 
    } 
} 
request.send(); 

回答

1

getElementsByTagName给你一个节点列表不结果子节点的一个元素。尝试

for (count = 0; count < date.length; count++) { 
     // text of date node 
     xmlDate = date[count].childNodes[0].nodeValue; 
     // read out text 
     console.log(xmlDate); 
    } 
+0

很大,它的工作,并显示日期,但我也得到了错误“遗漏的类型错误:无法读取的未定义的属性‘的childNodes’”为行'xmlDate =日期[统计] .childNodes [0] .nodeValue; ' – 2012-08-03 01:49:57

+0

@ Mr.1.0这个循环被错误地构造出来了 – Musa 2012-08-03 01:56:01