在我的 Javascript 代码中解析 xml 响应时我遇到了一些麻烦(使用 extjs 4,但我认为这无关紧要)。
xml 响应是这样的:
<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>
我在解析 id、时间、名称和消息等 1 级元素时没有问题,但我的 js 代码无法访问更深层次的元素。代码是:
var response = xmlHttpGetMessages.responseText;
response = xmlHttpGetMessages.responseXML.documentElement;
idArray = response.getElementsByTagName("id");
nameArray = response.getElementsByTagName("name");
timeArray = response.getElementsByTagName("time");
messageArray = response.getElementsByTagName("message");
requestorsArray = response.getElementsByTagName("p2pchat/requestor");
requestedsArray = response.getElementsByTagName("p2pchat/requested");
timep2pArray = response.getElementsByTagName("p2pchat/time");
messagep2pArray = response.getElementsByTagName("p2pchat/message");
执行此代码后,最后四个数组的长度始终为 0,我的 xml 响应中没有任何内容。我在 google 上搜索了一种解析 xml 树中内部元素的方法,但在 10 个不同的页面中,我发现了近 10 种不同的 sintax,似乎没有一个对我有用..有什么想法吗?