我需要编写一个使用HTML5和JS的PhoneGap应用程序(不需要与IE兼容),通过AJAX从RSS源中读取特定信息。我的问题是我不知道最好的处理RSS源的方式,而且jQuery无法处理XML。您有什么建议吗?
我需要编写一个使用HTML5和JS的PhoneGap应用程序(不需要与IE兼容),通过AJAX从RSS源中读取特定信息。我的问题是我不知道最好的处理RSS源的方式,而且jQuery无法处理XML。您有什么建议吗?
我最近使用这个教程制作了一个: http://net.tutsplus.com/tutorials/javascript-ajax/how-to-build-an-rss-reader-with-jquery-mobile-2/
(该教程介绍如何使用jQuery Mobile制作RSS阅读器)我刚刚制作了一个使用jFeed解析外部RSS源的PhoneGap应用程序。以下是一个示例:
首先,在我的index.html文件中包含以下JavaScript代码:
<head>
...
<script type="text/javascript" src="phonegap-1.0.0.js"></script>
<script type="text/javascript" src="jquery/jquery-1.6.4.js"></script>
<script type="text/javascript" src="jquery.mobile/jquery.mobile-1.0b3.min.js"></script>
<script type="text/javascript" src="jquery.jfeed/dist/jquery.jfeed.js"></script>
<script type="text/javascript" src="scripts/my.js"></script>
...
</head>
my.js
文件中,我使用以下代码:parseFeed();
function parseFeed() {
$.getFeed({
url: 'http://someUrl.com',
dataType: "xml",
success: function(feed) {
$('#feedresult').empty();
var html = '<ul data-role="listview">';
for(var i = 0; i < feed.items.length; i++) {
var item = feed.items[i];
html += '<li>'
+ '<a href="#article?id='
+ i
+ '">'
+ item.title
+ '</a>'
+ '</li>';
}
html = html + '</ul>';
$('#feedresult').append(html);
$('#main').page('destroy').page();
}});
};
这个问题虽然有些老,但仍可能有帮助,可以在2014年解决。
我测试了很多jQuery插件来包含RSS阅读器,但唯一能够在1分钟内完美工作的是zrssfeed
只需要在头部添加调用(在调用jquery和jquery mobile之后):
<script type="text/javascript" src="jquery.zrssfeed.min.js"></script>
在这之后,可以这样开始调用jQuery:
<script type="text/javascript">
$(document).ready(function () {
$('#feedresult').rssfeed('http://my.wordpress.website.com/feed/', {
limit: 5
});
});
</script>
你的意思是jQuery不能处理XML吗?jQuery是JavaScript,而在进行Ajax调用时,jQuery使用XMLHttpRequest
。看看名称中的XML*
。参见:http://api.jquery.com/jQuery.ajax/。有一个dataType
参数。你可以将其设置为xml
。然后,你将获得带有所有DOM对象方法的DOM对象。
你甚至可以将它作为jQuery选择器的第二个参数使用:
jQuery.get(url, {}, function (data) {
var entries = $("entry", data);
doSomething(entries);
}, 'xml');
一种选择是使用 RSS-to-JSON 管道,比如这个: http://pipes.yahoo.com/pipes/pipe.info?_id=2FV68p9G3BGVbc7IdLq02Q