首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery -尝试分析XML时,未捕获错误:无效的XML:[object Document]

问jQuery -尝试分析XML时,未捕获错误:无效的XML:[object Document]
EN

Stack Overflow用户
提问于 2012-02-21 09:31:30
回答 1查看 21.6K关注 0票数 2

我有一些带有Ajax调用的jQuery,如下所示:

代码语言:javascript
复制
$.ajax({
    type: "GET",
    url: "xml/photobank.xml",
    dataType: "xml",
    success: function(xml){
        xmlParser(xml, "Charlie");
    }
});

function xmlParser(xml, landOwner) {

    //Initial photos do not load if following line is used.
    //xml = $.parseXML(xml);

    $('#photo_container').empty();
    console.log('1');
    $(xml).find('Landowner').each(function(){
        console.log('2');
        var landownerName = $(this).attr('Name');
        if (landownerName === landOwner) {
            $(this).find('Photo').each(function(){
                $("#photo_container").append('<div class="photo ' + $(this).find("Category").text().toLowerCase() + '"><p>' + $(this).find("Animal").text() + '</p>'+ '<img class="photobank" src="images/' + $(this).find("Image").text() + '" />' + '</div>');
            })
        }
    });
}

您可以在此处查看XML文件:http://lamanai.org/catmap/xml/photobank.xml

但是,Ajax不显示解析后的XML,并在Chrome的控制台中抛出这个错误:Uncaught Error: Invalid XML: [object Document]。我在错误的时间调用Ajax吗?现在它在文档就绪上,因为我需要在初始页面加载时解析初始的"Charlie“类别。

如果删除xml = $.parseXML(xml);行,则会加载初始解析的XML,但随后在尝试使用xmlParser函数时会出现Uncaught ReferenceError: xml is not defined错误。

有什么提示吗?这是我第一次接触Ajax。

HTML:http://lamanai.org/catmap/

JS:http://lamanai.org/catmap/js/cameramap.js

XML:http://lamanai.org/catmap/xml/photobank.xml

--

更新:xml = $.parseXML(xml);行已被删除,但现在我在重新使用该函数时遇到了问题。下面的代码会导致xml is not defined错误。

代码语言:javascript
复制
$('#btn_arnoldo').click(function(){
    xmlParser(xml, "Arnoldo");
});

我可以使用下面的Ajax调用,并让它正常工作,但是每次我想要切换XML的哪个部分时,真的有必要执行Ajax吗?我以为最初的Ajax给了我一个可以解析的对象?

代码语言:javascript
复制
$('#btn_arnoldo').click(function(){
    $.ajax({
        type: "GET",
        url: "xml/photobank.xml",
        dataType: "xml",
        success: function(xml){
            xmlParser(xml, "Arnoldo");
        }
    });
}); 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-21 09:45:17

它看起来已经被解析了。您的对象似乎已经包含一个xml文档,而parseXML应该用于将xml字符串转换为XML文档。如果你想访问所有的图片标签,你应该能够使用jQuery来迭代所有的图片标签。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9370937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档