scala - 您如何使用 Rome 和 Scala 获取 RSS 提要的内容部分?

标签 scala lift rome

我今天一直在用 scala 研究 Rome 1.0,虽然我已经能够获得标题、描述等选项卡,但它说 getContent() 不存在。

   val url = "http://www.codecommit.com/blog/ruby/monads-are-not-metaphors/feed"
   val feed: SyndFeed = new SyndFeedInput().build(new XmlReader(new URL(url)))

   var rss_title = feed.getTitle()
   var rss_ex = feed.getTitleEx.getValue()
   var rss_desc = feed.getDescription()
   var rss_content = feed.getContent()  

<---- 这个似乎不存在,尽管查看它应该工作的 API。

最佳答案

一个提要代表多个条目,条目本身有一个 getContents() 方法。这是一个完整的工作示例(假设类路径上有 rome 1.0):

import com.sun.syndication.feed.synd.{SyndContent, SyndEntry, SyndFeed}
import com.sun.syndication.io.{SyndFeedInput, XmlReader}
import java.net.URL
import java.util.{List => JList}
import scala.collection.JavaConverters._

object RomeApp extends App {
  val url = "http://www.codecommit.com/blog/ruby/monads-are-not-metaphors/feed"
  val feed: SyndFeed = new SyndFeedInput().build(new XmlReader(new URL(url)))
  val rss_title = feed.getTitle
  val rss_ex = feed.getTitleEx.getValue
  val rss_desc = feed.getDescription
  val rss_entries = feed.getEntries.asInstanceOf[JList[SyndEntry]].asScala
  for (entry <- rss_entries;
       content <- entry.getContents.asInstanceOf[JList[SyndContent]].asScala) {
    println("------------------------------")
    println(content.getValue)
  }   
}

请注意,Java API 中缺少泛型使得使用起来有点麻烦,该库可以使用一些 pimping。

关于scala - 您如何使用 Rome 和 Scala 获取 RSS 提要的内容部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7761471/

相关文章:

scala - 如何使用Java而不是Java来学习如何使用scala。

spring - 无法从 Java Spring 中的 RSS Feed 接收数据

mysql - Scala中从数据库获取数据写入Json格式

scala - 我可以使用 monad 转换器来简化这个组合吗?

scala - 如何重用 SBT 模块项目定义

scala - 如何绕过 Scala 中 MongoRecord 的不变性

forms - 获取 lift 中的复选框和单选按钮值

macos - 使用 sbt 0.11.0 安装 Scala 2.9.1/Lift 2.4-M4

java - 使用 ROME 提取提要内容?

Java ROME RSS 库和 RSS 描述字段中的 HTML 代码