【发布时间】:2015-03-01 04:02:02
【问题描述】:
为了在不同的页面上显示我最新的博客文章,我想解析博客中的 rss-feed,然后用它生成元素。
我首先尝试解析一个固定的 .xml 文件,为此我编写了以下代码:
var maxBlogposts = 5;
var blogPosts = 0;
$.get("rss.xml", function(data) {
$(data).find("item").each(function() {
if(blogPosts === maxBlogposts) return;
var el = $(this);
//Only display 3 posts on small devices.
var extra = (blogPosts >= 3) ? "not-small 12u(small)" : "12u(small)";
var div = $('<div class="6u ' + extra + '" class="blog-entry"></div>');
var h = $('<h4><a href="' + el.find("link").text() + '">' + el.find("title").text() + '</a></h4>');
var description = el.find("description").text().replace('[…]', '<a href="' + el.find("link").text() + '">[…]</a>');
var p = $('<p>' + description + '</p>');
div.append(h);
div.append(p);
$('#blog').append(div);
blogPosts++;
});
});
这工作得很好。现在我想解析实际的 rss-feed。为此,我编写了一个 PHP 脚本,它只是获取提要并回显它。
<?php
$rss = file_get_contents('http://xn--der-grne-baum-1ob.net/feed/');
die($rss);
?>
我再次在前端获得了正确的 XML 文件。
我的问题是现在我的代码不再工作了。获取描述以及链接都失败了。我通过访问修复了描述
el.find(description")[0].innerHTML
但是我似乎无法使链接正常工作。从 PHP 文件返回的数据包含一个带有链接的节点。 “el”元素还包含名为“link”的子元素,但这些子元素不再包含实际的链接。
我觉得链接在解析过程中可能会“转义”?至少这是我能想到的唯一原因,这会导致我观察到的结果。
我正在解析的XML来自http://xn--der-grne-baum-1ob.net/feed/
【问题讨论】:
-
可以发布示例
rss吗? -
添加了一个示例,我正在使用找到的“el”登录控制台。
标签: javascript jquery xml