Javascript,无法解析XML子节点
在解析Javascript代码中的xml响应时,我遇到了一些问题(使用ExtJS4,但我认为这并不重要) xml响应如下所示:Javascript,无法解析XML子节点,javascript,xml,Javascript,Xml,在解析Javascript代码中的xml响应时,我遇到了一些问题(使用ExtJS4,但我认为这并不重要) xml响应如下所示: <response> <id>9</id> <time>2012-05-24 14:22:44</time> <name>user</name> <message>message</message> <p2pchat> &l
<response>
<id>9</id>
<time>2012-05-24 14:22:44</time>
<name>user</name>
<message>message</message>
<p2pchat>
<requestor>user1</requestor>
<requested>user2</requested>
<time>2012-05-26 12:13:28</time>
<message>msg</message>
</p2pchat>
</response>
执行此代码后,最后四个数组的长度始终为0,没有从xml响应中提取任何内容。
我在谷歌上搜索了一种解析xml树内部元素的方法,但在10个不同的页面中,我发现了几乎10个不同的Sintax,似乎都不适合我。有什么想法吗?谷歌上几个小时的数据挖掘为我提供了解决方案,我将其发布在此处,以便如果有人遇到相同的问题并发现此帖子具有我使用的解决方案:
var xmlp2pchat = response.getElementsByTagName("p2pchat");
var requestorsArray = Array();
var requestedsArray = Array();
var timep2pArray = Array();
var messagep2pArray = Array();
for(var i=0;i<xmlp2pchat.length;i++) {
var x = xmlp2pchat[i].getElementsByTagName("requestor");
var y = xmlp2pchat[i].getElementsByTagName("requested");
var z = xmlp2pchat[i].getElementsByTagName("time");
var t = xmlp2pchat[i].getElementsByTagName("message");
for(var j=0;j<x.length;j++) {
requestorsArray.push(x[j]);
requestedsArray.push(y[j]);
timep2pArray.push(z[j]);
messagep2pArray.push(t[j]);
}
}
var xmlp2pchat = response.getElementsByTagName("p2pchat");
var requestorsArray = Array();
var requestedsArray = Array();
var timep2pArray = Array();
var messagep2pArray = Array();
for(var i=0;i<xmlp2pchat.length;i++) {
var x = xmlp2pchat[i].getElementsByTagName("requestor");
var y = xmlp2pchat[i].getElementsByTagName("requested");
var z = xmlp2pchat[i].getElementsByTagName("time");
var t = xmlp2pchat[i].getElementsByTagName("message");
for(var j=0;j<x.length;j++) {
requestorsArray.push(x[j]);
requestedsArray.push(y[j]);
timep2pArray.push(z[j]);
messagep2pArray.push(t[j]);
}
}
var whatever = requestorsArray[i].firstChild.data