使用JavaScript分析XML文件中的链接
Parsing links from an XML files with JavaScript
为了在不同的页面上显示我最新的博客文章,我想解析博客中的rss提要,然后用它生成元素。
我首先尝试解析一个固定的.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提要。为此,我编写了一个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/
尝试
var maxBlogposts = 5
, blogPosts = 0;
$.get("https://query.yahooapis.com/v1/public/yql?q=select"
+ " * from feed where url='http://xn--der-grne-baum-1ob.net/feed/'")
.then(function(data) {
$(data.documentElement).find("results 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++;
});
}, function(jqxhr, textStatus, errorThrown) {
console.log(textStatus, errorThrown)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="blog"></div>
请参阅YQL控制台
相关文章:
- 在单击href链接的同时下载文件
- node.js的webtorrent通过magnet链接收集所有文件
- 链接/按钮从子文件夹下载文件--浏览器只是浏览
- markrwithlabel.js(第三方)原始文件链接断开
- 外部链接的Javascript文件赢得't执行,但函数有效
- 如何使用javascript从文件夹中获取图像并发布直接链接
- Web 地址虚拟目录会断开外部 JavaScript 链接,因此找不到文件
- 指定单击链接时要加载的xml文件
- 打开'选择文件'窗口单击锚链接(跳过单击'选择文件'按钮)
- 从HTML链接时,Javascript文件不起作用
- javascript外部链接文件的可接受数量是多少
- 重新加载链接文件 HTML
- 使用 src 在 PHP 中链接文件(图像,js)
- PHP jquery ajax取消链接文件夹中的图像不起作用
- Qt Deployment C++将链接文件设置为可执行目录
- 如何有效地等待链接文件在继续运行脚本之前完成运行
- 在JQuery中使用空格链接文件
- 我如何使网页检查,看看是否链接文件有错误的文件类型检查另一个文件类型
- HTML按钮:如何链接文件夹外的文件
- XAMPP, Mac OS X和链接文件