如何使用Ajax获取Xml数据 [英] How to get Xml data by using ajax

查看:92
本文介绍了如何使用Ajax获取Xml数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用ajax调用来获取我的xml数据.但是我在result.responseXML中仅获得ROOT节点值数据.无法访问ITEM标签数据.

I am trying to get my xml data by using ajax call. But I am getting only ROOT Node value data in my result.responseXML. Not able to access ITEM tag data.

我的XML.

<ROOT UN="ABC" Total="28">
    <ITEM Val = "1" data = "name1" />
    <ITEM Val = "2" data = "name2" />
    <ITEM Val = "3" data = "name3" />
    <ITEM Val = "4" data = "name4" />
    <ITEM Val = "5" data = "name5" />
</ROOT>

这是我正在尝试的.

Ext.Ajax.request({
        url : url,
        method: 'GET',
        success: function ( result, request )
            { 
               debugger;
                result.responseXML
            }
    });

在responseXML中,我得到<ROOT UN="ABC" Total="28" ></ROOT>

In responseXML I am getting <ROOT UN="ABC" Total="28" ></ROOT>

任何人都可以帮助我做错什么以及如何纠正.如何也获得Item标签.

Can Anybody help me what I am doing wrong and how to coorrect that. How to get Item tag also.

推荐答案

在Ext js中,读取xml数据的最佳方法是使用存储.

In Ext js, the best way to read xml data is to use a store.

  1. 创建商店并定义字段(映射属性(@Val)用于指示这是属性而不是子元素);
  2. 使用ajax代理加载数据;
  3. 使用xml阅读器读取数据.在Ext js 6中,您定义根元素的名称和要获取的元素的名称;
  4. 加载商店并在控制台中显示第一个元素的值.


var itemStore = Ext.create('Ext.data.Store', {
    fields: [{name: 'val', mapping: '@Val'}, 
        {name: 'data', mapping: '@data'}],
    proxy: {
        type: 'ajax',
        url: 'data1.xml',
        method: 'GET',
        reader: {
            type: 'xml',
            record: 'ITEM',
            rootProperty: 'ROOT'
        }
    }
});

itemStore.load(function(records, operation, success) {
    var item1 = itemStore.first();
    console.log("First item " + item1.get('val'));
});


在此处检查小提琴: https://fiddle.sencha.com/# view/editor& fiddle/1vd6

这篇关于如何使用Ajax获取Xml数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆