创建构造函数和适配器以读取xml

时间:2013-02-17 13:52:02

标签: javascript xml

 <Analysis id="1" name="Agricultural Resources" >
    <MapObjects>
      <MapObject Instance="mobject_2" name_area="Ukraine">
        <Contact>
          <Name>Testing</Name>
      <Tell>012312</Tell>
    </Contact>
      </MapObjects>
  </Analysis>

这是XML ..我需要编写一个构造函数和一个调用fucntions的适配器。我需要使用Analysis和带有详细信息的HTML填充Dropdown。

 function getData() {
        var d = new Date();
        var tt = d.getMilliseconds();
        durl = 'data.xml?tt' + tt;
        $.ajax({
            type: "GET",
            url: durl,
            dataType: "xml",
            success: parseXml
        });
    }

我写这个来提取xml ..我需要更进一步。

1 个答案:

答案 0 :(得分:0)

您应首先修复XML,<MapObject>未关闭:

<Analysis id="1" name="Agricultural Resources">
    <MapObjects>
        <MapObject Instance="mobject_2" name_area="Ukraine">
            <Contact>
                <Name>Testing</Name>
                <Tell>012312</Tell>
            </Contact>
        </MapObject>
    </MapObjects>
</Analysis>

然后您可以在parseXml函数中查询XML以提取您感兴趣的值。例如,为了提取NameTell节点,您可以首先循环所有MapObject节点并检索相应的值:

function parseXml(xml) {
    $(xml).find('MapObject').each(function() {
        var nameArea = $(this).attr('name_area');
        var name = $(this).find('Name').text();
        var phone = $(this).find('Tell').text();
        alert('name_area: ' + nameArea  + ', name: ' + name + ', telephone: ' + phone);    
    });
}

此外,我建议您使用cache: false设置,而不是使用某些数据时间来破坏缓存:

function getData() {
    $.ajax({
        url: 'data.xml',
        type: 'GET',
        cache: false,
        dataType: 'xml',
        success: parseXml
    });
}