有没有人知道将原始的XML RSS提要导入C#的简单方法?我正在寻找一种简单的方法来将XML作为字符串获取,以便我可以使用Regex解析它.
谢谢,-Greg
我正在尝试阅读一些Rss/Atom提要
var synFeed = SyndicationFeed.Load(reader);
Run Code Online (Sandbox Code Playgroud)
但它引发了最轻微的问题.例如,当一个Item在描述字段中包含一些HTML标记时,根本无法读取Feed.它也不喜欢SlashDot的RDF标签.
注意,这Load()是一个没有重载的静态方法.
是否有另一种方法通过使用System.ServiceModel.Syndication.SyndicationFeed导入Feed?我找不到它.
顺便说一下:我使用的是C#4,但任何Framework 3.5的答案都很好.我知道Argotic和其他库,只是想看看Syndication框架的第一个可用性.
我能用PHP解析RSS - 我正在寻找的是能够只获得更新的内容,如果没有新的RSS更新,什么也不做.
例如,我有这个RSS文件,如果没有新内容,没有任何反应,但如果有新内容,我想向我的用户发送最新的RSS更新,而不是重新发送已有的内容.我正在解析并仅发送标题和链接.
我使用cronjob检查每小时的更新.我的问题是如何判断Feed现在已更新,与上一次不同?这是我用来阅读RSS 的PHP文件.我是否将最后一个内容写入文件并进行比较,还是有其他方法可以确定内容现在与上一个不同?
更新:我不得不复活这篇文章,因为我仍然试图让它发挥作用.虽然我接受了一些答案,但它们很难实现,例如哈希选项最初看起来是个好主意,但是当检查数千个RSS时,几乎不可能将它们全部哈希.
再一次,有人建议HTTP缓存 - 我找不到一个简单的演示,所以我几乎卡住了.
任何进一步的建议将受到高度赞赏.
首先,在你说什么之前,我必须这样做,因为RSS格式不正确,但我不能纠正它.因此,当我尝试使用RSS和XML解析器时,它们会失败并且我只有前端访问权限.但是,我非常接近,但我无法弄清楚为什么这不匹配.
Feed(这是一个很长的 1行字符串):http: //pastebin.com/5dJhXCvf
第一个例子:
<title>(.+)</title>
Run Code Online (Sandbox Code Playgroud)
我认为这对我的测试非常有用:
<title>"cterrorism task force" location:oregon - Google News</title>
Run Code Online (Sandbox Code Playgroud)
但问题是它匹配所有内容然后作为一个匹配例如:
<title>"cterrorism task force" location:oregon - Google News</title><title>"cterrorism task force" location:oregon - Google News</title>
Run Code Online (Sandbox Code Playgroud)
从我的数组等于1个结果项exec()和match()
所以我试过:
<title>([\w\d\s\=\%\_\`\~\+\!\@\#\$\%\^\&\*\(\)\:\'\"\[\]\{\}\|\,\.\/]+)</title>
Run Code Online (Sandbox Code Playgroud)
但这没有任何回报......任何想法?
我对RSS的"转义HTML"的理解是这样的:
HTML:
1 < 3
Run Code Online (Sandbox Code Playgroud)
变成(RSS):
1 &lt; 3
Run Code Online (Sandbox Code Playgroud)
那么,那么,应该这样:
<img src="http://somehost/someimage?a=foo&b=bar" />
Run Code Online (Sandbox Code Playgroud)
成为:
<img src="http://somehost/someimage?a=foo&amp;b=bar" />
Run Code Online (Sandbox Code Playgroud)
(注意&amp;如果是,那么这是无效的RSS吗?
<description>
...
<img src="http://d.yimg.com/a/p/ap/20110309/capt.f6...02-0.jpg?x=91&y=130&q=85&sig=6oI7fIgN0izc9olfgY56vw--" />
</description>
Run Code Online (Sandbox Code Playgroud)
(此外,关闭> 是不是转义不好?)
我所遇到的上述<description>的问题是,一旦解码了第一层实体(XML)以获得<description>标签的内容,就会得到一个长CDATA,它应该是HTML.问题是<img>只有一个&,这是一个无效的实体.对于上面的大块,我得到类似的东西<img src="....?x=1&y=2" />,这是无效的HTML.
我只是看着被推到RSS中的糟糕的HTML,还是我在这里遗漏了什么?
var feedcontainer=document.getElementById("feeddiv")
var feedurl="http://example.com"
var feedlimit=5
var rssoutput="<b>Latest Slashdot News:</b><br /><ul>"
function rssfeedsetup(){
var feedpointer=new google.feeds.Feed(feedurl) //Google Feed API method
feedpointer.setNumEntries(feedlimit) //Google Feed API method
feedpointer.load(displayfeed) //Google Feed API method
}
function displayfeed(result){
if (!result.error){
var thefeeds=result.feed.entries
for (var i=0; i<thefeeds.length; i++)
rssoutput+="<li><a href='" + thefeeds[i].link + "'>" + thefeeds[i].title + "</a></li>"
rssoutput+="</ul>"
feedcontainer.innerHTML=rssoutput
}
else
alert("Error fetching feeds!")
}
window.onload=function(){
rssfeedsetup()
}
Run Code Online (Sandbox Code Playgroud)
我从教程中抓取了这段代码,但它只抓取了Google文档中指定的项目,这些是链接和标题等基础知识.
在我的RSS订阅源中,我有一个标记位于是否有可能实现?
我目前正在开发一个动态RSS源,它将自动从MySQL数据库中提取文章.代码如下
<?php
//Include the post retreival script
require_once '../phpScripts/rss_db_setup.php';
//Set the content type
header('Content-type: text/xml');
//Set up the RSS feed information
echo '<?xml version="1.0" encoding="ISO-8859-1"?>'.
'<rss version="2.0">'.
'<channel>'.
'<title>Company Name</title>'.
'<link>http://www.company.ca</link>'.
'<description></description>'.
'<category></category>';
//Retreive posts from the database
$rssData = new rssData();
echo $rssData->generateFeed($dbcon);
//Close the feed
echo '</channel></rss>';
?>
Run Code Online (Sandbox Code Playgroud)
我想知道这个文件是应该保存为.xml还是.php?我已将以下行添加到我的.htaccess文件中,但并不完全理解它是如何工作的
AddType application/x-httpd-php .xml
Run Code Online (Sandbox Code Playgroud)
这是一个正确的方法吗?或者我应该使用另一个htaccess函数,如modRewrite,还是使用CRON作业每天生成一个新的.xml?
我正在尝试从此Feed获取文章的链接列表:
http://rss.cbc.ca/lineup/topstories.xml
但是,当Jsoup读入它时,标签中的链接就<link>http://www.cbc.ca/news/?cmp=rss</link>变成了<link />http://www.cbc.ca/news/?cmp=rss
即标签自我关闭,如果我这样做
Elements items = doc.select("link");
Run Code Online (Sandbox Code Playgroud)
它没有抓住任何链接.
我正在使用SimpleXML库.我需要获取rss feed并将其转换为java对象.这里我需要映射到对象的XML
<rss xmlns:lj="http://www.livejournal.org/rss/lj/1.0/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom10="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>??????! ?????! ?? ?????! ? ?? ? ???!</title>
<link>http://xuma.livejournal.com/</link>
<description>
??????! ?????! ?? ?????! ? ?? ? ???! - LiveJournal.com
</description>
<lastBuildDate>Thu, 17 Mar 2011 10:08:33 GMT</lastBuildDate>
<generator>LiveJournal / LiveJournal.com</generator>
<lj:journal>xuma</lj:journal>
<lj:journalid>5295048</lj:journalid>
<lj:journaltype>personal</lj:journaltype>
<copyright>NOINDEX</copyright>
<image>
<url>http://l-userpic.livejournal.com/104864030/5295048</url>
<title>??????! ?????! ?? ?????! ? ?? ? ???!</title>
<link>http://xuma.livejournal.com/</link>
<width>66</width>
<height>100</height>
</image>
<item>
<guid isPermaLink="true">http://xuma.livejournal.com/7831.html</guid>
<pubDate>Thu, 17 Mar 2011 10:08:33 GMT</pubDate>
<title>??????. ??????? ????????????.</title>
<link>http://xuma.livejournal.com/7831.html</link>
<description>...</description>
<comments>http://xuma.livejournal.com/7831.html</comments>
<lj:security>public</lj:security>
<lj:reply-count>0</lj:reply-count>
</item>
<item>
<guid isPermaLink="true">http://xuma.livejournal.com/7575.html</guid>
<pubDate>Sat, 16 Oct …Run Code Online (Sandbox Code Playgroud) 我有100个网站在不同的位置暴露RSS源.这些位置有几个指向不同Feed的RSS提要链接.它几乎与BBC Rss供稿页面 http://www.bbc.com/news/10628494相同
站点1:domain1.com/rss站点2:domain2.com/enviroments/rss
有没有办法提取出每个feed xml的rss链接.
类似于这个 自动提取来自网页的提要链接(原子,rss等),但我想只提供该网站.这样我就可以获得特定网站的所有可能的RSS源.
我想要列出100个网站的所有RSS源.那么我就可以在仪表板上监控它们.哦饲料aee混合bith原子和rss.
我做了什么.我查看了apache nutch和parse-feed插件.Scrapy是下一个选择,但我仍然不确定这是我在寻找什么.