从XML读取Ajax中的未知大小的数组

时间:2012-05-16 07:40:43

标签: jquery xml ajax

如何使用jQuery读取和签署XML数据(不同大小的数组)?

AJAX从XML读取行节点并存储在javascript数组中,XML数组大小不是常数。

我的代码:

$(document).ready(function(){
    $.ajax({
        type: "GET",
        url: "sites.xml",
        dataType: "xml",
        success: function(xml) {
            $(xml).find('msg').each(function() {
                var title = $(this).find('title').text();
                i = 0;
                tic = new Array();
                $(this).find('desc').each(function() {
                    tic.push($(this).find('line').text());
                    alert(tic[i]);
                    i++;
                });
            });
        }
    });
});

和XML文件(演示)

<msgs>
    <msg>
        <title>ABC</title>
        <desc>
            <line>test 1</line>
            <line>test 2</line>
            <line>test 2</line>
        </desc>
        <time>5</time>
    </msg>
</msgs>

请有人帮帮我

1 个答案:

答案 0 :(得分:0)

将所有line元素读入数组更改

tic.push($(this).find('line').text());

$(this).find('line').each(function() {
    tic.push($(this).text());
})

这将处理每个line元素并将其添加到您的数组中,然后将数组初始化放在顶部var tic = []; ...所以完整的成功函数将如下所示:

var tic = [];
$(xml).find('msg').each(function() {
    var title = $(this).find('title').text();
    $(this).find('line').each(function() {
        tic.push($(this).text());
    });
});​

Working example here