2014-10-19 43 views
0

所以通過一個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。會發生什麼?

回答

0

您需要某種計數器或數組,否則它解析但不累積任何信息。

編輯:嘗試像

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