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();
怎么会这样?你能举个例子吗? – 2014-10-19 23:13:20
@AndréSilva尝试上面的代码,看看是否给你适当的长度? – 2014-10-19 23:18:50
什么是eventosXML? – 2014-10-19 23:20:32