使用 jQuery Mobile 进行 XML 解析

Posted

技术标签:

【中文标题】使用 jQuery Mobile 进行 XML 解析【英文标题】:XML Parsing with jQuery Mobile 【发布时间】:2013-04-06 07:43:26 【问题描述】:

我正在尝试使用 jQuery mobile 解析 XML 文件。这是我的 jQuery 脚本:

<script>
    $(document).ready(function()
        $.ajax(
            type: "GET",
            url: "bars.xml",
            dataType: "xml",
            success: function(xml) 
                $(xml).find('bar').each(function()
                    var date = new Date();
                    var day = date.getDay();
                    var name = $(this).attr('name');
                    var id = $(this).attr('id');
                    var specials = $(this).find('specials').text();
                    if (id == day)
                       
                        $('<li data-role="list-divider" id="link_'+id+'"></li>').html(name).appendTo('#daily-specials');
                        $('<li class="specials"></li>').html(specials).appendTo('#link_'+id);
                        
                    );
                ); 
            );
        );
 </script>

还有我的 XML 文件:

    <?xml version="1.0" encoding="iso-8859-1"?>
<bars>
    <!-- Friday specials for bar one -->
    <bar name="Bar One" id="5">
       <specials>
         Special 1 <br />
         Special 2 <br />
         Special 3 <br />
         Special 4 <br />
         Special 5
       </specials>
   </bar>
   <!-- Saturday specials for bar one -->
    <bar name="Bar One" id="6">
       <specials>
         Special 1 <br />
         Special 2 <br />
         Special 3 <br />
         Special 4 <br />
         Special 5
       </specials>
   </bar>
</bars>

谁能看到我做错了什么?如您所见,我正在尝试获取一周中当天的“Bar One”的特别信息,然后将该信息传递给我页面上的 HTML 类。不过,我的网站上没有打印出来。如果我什至不接近,我深表歉意,但方向会有所帮助。谢谢!

【问题讨论】:

您必须将索引和元素传递给每个函数,如下所示: $(xml).find('bar').each(function(index, barInstance) [...] 然后只需访问它 var specials = barInstance.find('specials').text(); 好吧,它对我有用jsfiddle.net/c3pnc 如果所有的栏都有相同的描述; “name = bar One”那你为什么要基于那个搜索.....???您可以在每个循环中使用每个条搜索您的数据!!! 尝试使用$.parseXML(xml) 您是在周日、周一、周二、周三还是周四运行的? 【参考方案1】:

正如您所说,网站上没有任何内容。 我看到您正在使用本地 xml 文件。同源政策可能会受到影响。 我猜你使用的是chrome浏览器。 (在 chrome 上使用 F12 键的错误请参见控制台。)

在 Firefox 或 IE 上试试。

如果您仍想使用 chrome.. 请在 chrome 快捷方式的 targer 属性中添加以下内容。 --allow-file-access-from-files

希望这会有所帮助并将其标记为答案。

【讨论】:

以上是关于使用 jQuery Mobile 进行 XML 解析的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 javascript、jquery mobile 的数据库

jquery mobile 与 phonegap 404 ajax 错误。但在 Firefox、IE 中运行良好

更改 jquery mobile listview 背景颜色

jquery mobile - 删除标题中的图标光盘

jQuery Mobile 锁定方向

jQuery Mobile 重用标题和导航