包含带有jQuery的XML nodevalue

时间:2011-09-02 06:11:56

标签: jquery html xml

我的困境:

我的服务器上有一些我想用AJAX调用连接的东西:

  • XML文件

  • HTML测试索引

  • 一个装满HTML副本的文件夹

  • 一些jQuery脚本

XML包含HTML副本的相对地址。 jQuery应该在测试索引页面上获取我的nodevalue和一些DIV。最终,索引页面应该在没有完全重新加载的情况下更新它的一些HTML,就像我的AJAX学习所说的那样。

不幸的是,我几乎不知道自己在做什么。

这就是我正在使用的:

$(document).ready(function(){
    $('#header').click(function(){
        $('p#test').html('At least <em>this</em> works');    
        $.ajax({
            type: "GET",
            url: "archives.xml",
            datatype: "xml",
            success: function(xml){
                $('div#viewer').append($(this).find('title')).text();
            }
        });
    });
});

我的AJAX电话没有做任何事情。我可以告诉我我做错了什么,但此时我很高兴我删除了DOM 4错误和意外的令牌错误。

这是我试图调用并导航并从中获取数据的测试XML:

<archives>
    <entry>
        <date>
            <year>2011</year>
            <month>April</month>
            <day>1</day>
        </date>
        <title>Trees!</title>
        <deck>and something that definitely isn't a tree</deck>
        <source>./copy/1april2011.html</source>
    </entry>
</archives>

我已经知道的事情:

  • 我知道javascript无法访问本地文件系统。这些都是我在网上遇到的问题。

  • jQuery选择器据说与XML DOM不相称?至少这是我在过去五六年里从各种博客收集到的内容。

  • 我了解JSON,但我很难从XML转换为JSON。整个大括号和括号语法有点令人困惑。

问题:

  • 我的成功功能有什么问题?它模仿我读过的教程,但我显然有些不对劲。

  • 一旦我从XML中获取了一个值,我是否可以在变量中包含该值,以便外部调用的函数能够读取它?

1 个答案:

答案 0 :(得分:2)

jquery selectors a不是用于解析包装jquery对象中xml的xml,而是解析它是依赖于浏览器的使用.parseXML而不是

这是一个演示http://jsfiddle.net/AKJwF/3/

$(document).ready(function(){
    $('#header').click(function(){
        $('p#test').html('At least <em>this</em> works');    
        $.ajax({
            type: "GET",
            url: "archives.xml",
            datatype: "xml",
            success: function(xml){
             xmlDoc = $.parseXML( xml ),
             $xml = $( xmlDoc ),
             $title = $xml.find( "title" ).text();
                $('div#viewer').append($title);
            }
        });
    });
});