Jquery如果找不到xml文件如何读取另一个xml文件

时间:2014-01-27 08:26:11

标签: jquery xml

$(document).ready(function()
{
    $.ajax({
    mtype: 'GET',
    url: '2.xml',
    dataType: 'xml',

    success: function(parseXml)
    {
        $('#title').append("City : " + $(parseXml).find("location").attr('city'));
        $('#lastupdate').append("Last Updated On : " + $(parseXml).find("lastBuildDate").text());

        var eday = new Array('#11','#12','#13','#14','#15');
        var eimg = new Array('#16','#17','#18','#19','#20');
        var emax = new Array('#21','#22','#23','#24','#25');
        var emin = new Array('#26','#27','#28','#29','#30');
        var erep = new Array('#31','#32','#33','#34','#35');
        var i = 0;

        $(parseXml).find('forecast').each(function()
        {
            $(eday[i]).append($(this).attr('day'));
            $(eimg[i]).append("<img src='img/" + $(this).attr('code') + ".png' style='width:40%;height:100%'/>");
            $(emax[i]).append($(this).attr('high'));
            $(emin[i]).append($(this).attr('low'));
            $(erep[i]).append($(this).attr('text'));
            i++;
        });

    }
  });
});

我正在使用jquery读取2.xml文件。现在我想如果找不到文件2.xml文件我想读取1.xml文件。如何实现这一目标。任何建议

1 个答案:

答案 0 :(得分:1)

尝试类似

的内容
$(document).ready(function () {
    load(['2.xml', '1.xml'])

    function load(urls) {
        if (!urls.length) {
            return;
        }
        $.ajax({
            mtype: 'GET',
            url: urls.shift(),
            dataType: 'xml',
            success: function (parseXml) {
                $('#title').append("City : " + $(parseXml).find("location").attr('city'));
                $('#lastupdate').append("Last Updated On : " + $(parseXml).find("lastBuildDate").text());

                var eday = new Array('#11', '#12', '#13', '#14', '#15');
                var eimg = new Array('#16', '#17', '#18', '#19', '#20');
                var emax = new Array('#21', '#22', '#23', '#24', '#25');
                var emin = new Array('#26', '#27', '#28', '#29', '#30');
                var erep = new Array('#31', '#32', '#33', '#34', '#35');
                var i = 0;

                $(parseXml).find('forecast').each(function () {
                    $(eday[i]).append($(this).attr('day'));
                    $(eimg[i]).append("<img src='img/" + $(this).attr('code') + ".png' style='width:40%;height:100%'/>");
                    $(emax[i]).append($(this).attr('high'));
                    $(emin[i]).append($(this).attr('low'));
                    $(erep[i]).append($(this).attr('text'));
                    i++;
                });

            },
            error: function (req) {
                if (req.status == 404) {
                    load(urls);
                }
            }
        });
    }
});

如果当前url抛出404(未找到)错误,它将加载数组中的下一项

演示:Fiddle