Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在数据库中存储媒体RSS和iTunes播客RSS源_Ruby On Rails_Ruby_Rss_Feedparser_Feedzirra - Fatal编程技术网

Ruby on rails 在数据库中存储媒体RSS和iTunes播客RSS源

Ruby on rails 在数据库中存储媒体RSS和iTunes播客RSS源,ruby-on-rails,ruby,rss,feedparser,feedzirra,Ruby On Rails,Ruby,Rss,Feedparser,Feedzirra,我希望能够存储和RSS提要到数据库中。这里的要求是我不想错过提要中的任何元素或其属性。在提要中找到所有最常见的元素并将它们作为单独的列存储在数据库中是有意义的。这里的问题是,可能有一些饲料特定的元素不是标准的。我也想抓住他们。因为我不知道它们可以是什么,所以我不会为它们设立专门的专栏 目前,我有两个名为feed和feed_entries的表。对于RSS2.0标记(如附件、类别),我有单独的表,这些表与提要/提要条目关联。我正在使用feedzirra解析提要。Feedzirra要求我们知道要解析的

我希望能够存储和RSS提要到数据库中。这里的要求是我不想错过提要中的任何元素或其属性。在提要中找到所有最常见的元素并将它们作为单独的列存储在数据库中是有意义的。这里的问题是,可能有一些饲料特定的元素不是标准的。我也想抓住他们。因为我不知道它们可以是什么,所以我不会为它们设立专门的专栏

目前,我有两个名为feed和feed_entries的表。对于RSS2.0标记(如附件、类别),我有单独的表,这些表与提要/提要条目关联。我正在使用feedzirra解析提要。Feedzirra要求我们知道要解析的提要中的元素,因此我们不知道提要是否包含Feedzirra无法理解的元素

将这些提要存储在数据库中而不丢失任何信息的最佳方式是什么?(将整个提要按原样转储到数据库中是行不通的,因为我们希望查询大多数属性)。哪种解析器最适合?Feedzirra是出于性能考虑而选择的,但是,将feed中的所有数据输入数据库是一个优先事项

更新


我使用MySQL作为数据库。

将XML存储为CLOB,大多数数据库都有XML处理扩展,允许您将XPath类型查询作为SELECT语句的一部分


否则,如果您的DBMS不支持XML查询,请使用您的语言XPath实现来查询CLOB。您可能需要将某些元素提取到表列中以进行快速查询。

我还根据提要和条目对数据库进行建模,并交叉映射RSS、RDF和Atom的字段,因此我可以捕获所需的数据字段作为起点。然后,我添加了一些其他的标签和我自己的提要内部摘要,以及一些内务管理和维护字段

如果您离开Feedzirra,我建议您将实际的提要XML临时存储在一个暂存表中,以便您可以在空闲时使用它进行后期处理。这样,您的HTTP进程就不会在处理文本时陷入困境,它只是检索内容并将其归档,然后更新处理时间的记录,以便您知道何时再次检查。post过程可以从存储的XML中提取要存储在数据库中的提要信息,然后删除记录。这意味着有一个进程周期性地以最快的速度导入提要,另一个进程基本上是在后台运行的

而且,和可以很好地处理多个HTTP请求,并且易于设置