有人可以建议是否可以从包含html的RSS提要节点中为每个图像提取图像src?
我们基本上想要列出来自Google RSS订阅源的故事,我可以访问描述/链接等,因为它们位于自己的节点内 - 但无法访问单个图像。
感激地收到任何建议
这是我的代码 - $(函数(){ $获得( 'rss.php',{FEED_URL:“HTTP://news.google.co.uk/news DS = N&安培; PQ =弹出+ musicnews&安培; HL = EN&安培; sugexp = GSIS,I18N%3Dtrue&安培; CP = 9&安培; gs_id = 36&安培; XHR = T&安培; q =弹出+音乐&安培; gs_upl =安培; BAV = on.2,or.r_gc.r_pw&安培; BIW = 1440&安培;波黑= 681&安培; BS = 1&安培; UM = 1& ie = UTF-8& output = rss'},function(xml){// Grab rss.php,输入GET feed_url属性并将其设置为您想要的Feed的网址。
$(xml).find("item").each(function() {
var i = $(xml).find("item").index(this);
var desc = $('item: description',xml).replace(/"/, '"');
if(i < 2) {
var newsTitleOne = $('item:eq(0) title',xml).text();
var newsTitleTwo = $('item:eq(1) title',xml).text();
$(".newsIOne .newsText .t").append(newsTitleOne);
$(".newsITwo .newsText .t").append(newsTitleTwo);
alert(hello);
} else {
$("ul").append("<li style='color: blue'>" + $(this).text() + "</li>");
}
});
});
});
干杯 保罗
答案 0 :(得分:0)
在javascript中,您可以从任何类型的文本数据中读取数据,您只需要正确的解析或耐心即可。对于XML来说,它很容易,因为它适合本地处理XML,XML是HTML的基础。
使用jQuery会更容易,请参阅下面的示例。
var xml = "<rss version='2.0'><channel><title>RSS Title</title></channel></rss>",
xmlDoc = $.parseXML( xml ),
$xml = $( xmlDoc ),
$title = $xml.find( "title" );
可在jQuery.parseXML() - jQuery API找到更多信息。
对于发布的Feed,它会比较复杂,因为图片是HTML编码的描述。
但HTML可以通过这样解码来解码。
var decoded = description
.replace(/&/g,'&')
.replace(/</g,'<')
.replace(/>/g,'>')
.replace(/"/, '"');
因此,您解析Feed,获取描述,解码并再次解析描述,就像img
元素一样。
如果这对您来说太过分了,而且图像源使用Regex来提取它。
/(?: src=")(.+)(?:")/
这样的事情可以胜任。
鉴于你的例子,它会是这样的。
function (xml) {
var items = $(xml).find('item');
for (var i = 0; i < items.length; i++) {
var description = items.eq(i).find('description');
//Alternative 1
var descElem = $.parseXML(
description
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/, '"')
);
var imgSrc = $(descElem).find('img').attr('src');
//Alternative 2
var imgSrc = /(?: src=")(.+)(?:")/.exec(descrition);
//null if don't exist
(...)
}
}