如何解析这个xml文档?

时间:2010-05-31 08:59:36

标签: xml ajax

在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>

1 个答案:

答案 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工作没什么不同。