【问题标题】:How to parse this xml document?如何解析这个xml文档?
【发布时间】:2010-05-31 08:59:35
【问题描述】:

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

【问题讨论】:

    标签: xml ajax


    【解决方案1】:

    request.responseXML 为您提供 XML Document node。这与 HTML DOM 的工作方式类似(实际上,HTML DOM 是普通 XML DOM “核心”的扩展),因此您可以使用许多与 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 工作几乎没有什么不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 2020-07-10
      • 1970-01-01
      相关资源
      最近更新 更多