在ajax(var data = request.responseXML;)的帮助下得到这样的XML文档,我该如何解析联系人?:
<?xml version="1.0" encoding="UTF-8"?>
<Alladresses xmlns="http://somedomain.org/doc/2007-08-02/">
<Owner>
<ID>gut74hfowesdfj49fjsifhryh8e8rta3uyhw4</ID>
<Name>Mr.Bin</Name>
</Owner>
<Contacts>
<Person>
<Name>Greg</Name>
<Phone>3254566756</Phone>
</Person>
<Person>
<Name>Smith</Name>
<Phone>342446446</Phone>
</Person>
<Person>
<Name>Yuliya</Name>
<Phone>675445566867</Phone>
</Person>
</Contacts>
</Alladresses>
答案 0 :(得分:0)
request.responseXML
为您提供了一个XML Document node。这类似于HTML DOM(实际上,HTML DOM是纯XML DOM'Core'的扩展),因此您可以使用许多与HTML节点相同的方法,例如:
var doc= request.responseXML;
var contacts= doc.getElementsByTagName('Contacts')[0];
var people= contacts.getElementsByTagName('Person');
var details= [];
for (var i= 0; i<people.length; i++) {
var person= people[i];
var name= person.getElementsByTagName('Name').firstChild.data;
var phone= person.getElementsByTagName('Phone').firstChild.data;
details.push({name: name, phone: phone});
}
当然,有很多方法可以使这种解析工作更加健壮和通用,有用的库,XPath支持等等。但在基本性质上,它与HTML DOM工作没什么不同。