DOM解析器 - JavaScript的工作不

问题描述:

所以通过一个Ajax请求我收到以下字符串:DOM解析器 - JavaScript的工作不

<eventos> 
     <evento> 
     <local> 
      <cidade>Porto</cidade> 
      <pais>Portugal</pais> 
      <latitude>41.140082</latitude> 
      <longitude>-8.622347</longitude> 
     </local> 
     <artistas> 
      <artista>Future Islands</artista> 
      <artista>Celebration</artista> 
     </artistas> 
     </evento> 
     <evento> 
     <local> 
      <cidade>Porto</cidade> 
      <pais>Portugal</pais> 
      <latitude>41.140082</latitude> 
      <longitude>-8.622347</longitude> 
     </local> 
     <artistas> 
     <artista>Fujiya</artista> 
     <artista>Rainy Days Factory</artista> 
     <artista>O Manipulador</artista> 
     </artistas> 
    </evento> 
    </eventos> 

然后我继续使用DOM解析器这样对她的转换:

var xmlDoc; 
if (window.DOMParser) { 
    parser = new DOMParser(); 
    xmlDoc = parser.parseFromString(response, "text/xml"); 
} else { 
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
    xmlDoc.async = false; 
    xmlDoc.loadXML(response); 
} 

然而,当我尝试例如循环通过它的节点:

var eventos = xmlDoc.getElementsByTagName('evento'); 
alert(eventos.length); 

它打印0,虽然我有2个在X ML。会发生什么?

您需要某种计数器或数组,否则它解析但不累积任何信息。

编辑:尝试像

eventosXML.evento.length(); 
+0

怎么会这样?你能举个例子吗? – 2014-10-19 23:13:20

+0

@AndréSilva尝试上面的代码,看看是否给你适当的长度? – 2014-10-19 23:18:50

+0

什么是eventosXML? – 2014-10-19 23:20:32