`
mondayw
  • 浏览: 144646 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

[译文]了解用于读取RSS和Atom新闻推送的JavaFX API(一)

阅读更多

原文:Learn about JavaFX's APIs for Reading RSS and Atom Newsfeeds

作者:Jeff Friesen

出处:http://today.java.net/article/2009/11/30/learn-about-javafxs-apis-reading-rss-and-atom-newsfeeds

 

JavaFX 1.2引入了许多有意思的API,其中包括了用于读取RSSAtom新闻推送(newfeed)的API。如果你还未曾使用过这些API来的话,你将会发现它们大大地简化了把新闻推送阅读器整合到JavaFX应用中这一任务。

本文向你介绍了RSSAtomAPI,首先研究它们的共同基础,然后浏览每个API的关键类,最后,通过探讨FeedTask类对新闻推送轮询的实现来深入了解这些API是如何工作的。

 

共同的基础

 

RSSAtomAPI分别是以抽象类javafx.async.Task为根源的共同基础框架上的两个分支,该类使得启动、停止和跟踪运行在后台线程中的活动(任务)成为可能。

Task提供onStartonDone变量来标识在任务启动和终止时被调用的函数,其他的变量则报告任务的进展情况和处置情况(成功或者失败),该类还提供了抽象的start():Voidstop():Void函数来启动和终止任务的执行。

抽象类javafx.data.feed.FeedTask扩展了Task,除了继承Task的变量之外,还重写了它的start()stop()函数,FeedTask提供了以下的函数和变量:

Ÿ           poll(): Void:轮询新闻订阅的location以获得更新的内容,提取和解析内容,然后交付给应用。

Ÿ           update(): Void:轮询新闻订阅的location,提取和解析所有内容,然后交付给应用。

Ÿ           headers(类型为javafx.io.http.HttpHeader[])标识了一系列每次轮询新闻推送时发送给locationHTTP请求标头,该变量默认为null

Ÿ           interval(类型为javafx.lang.Duration)指定了在再一次轮询新闻推送获得更新之前必须要间隔的时间长度,需要为该变量指明一个正数值,缺省值为0.0。(我不知道如果选择一个诸如60秒之类的正值作为轮询的默认值是不是会更好一些,也许可以用0.0来表明不需要轮询)

Ÿ           location(类型为String)指定了新闻推送的地址,该变量的缺省值为空串(””)。

Ÿ           onException(类型为function(:Exception):Void)标识了当前轮询期间发生异常时被调用的函数,该变量的缺省值为null

Ÿ           onForeignEvent(类型为function(:javafx.data.pull.Event):Void)标识了被调用来处理扩展元素的函数,这些新闻推送元素的命名空间URI不是Atom或者RSS,例如,某个给定的Atom新闻推送的推送元素的开始标记是这样指定的<feed xmlns="http://www.w3.org/2005/Atom" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">,解析随后的<opensearch:totalResults>1911</opensearch:totalResults>元素得出三个陌生的项目(对应开始标记、文本内容和终止标记),因为totalResults的命名空间是http://a9.com/-/spec/opensearch/1.1/(以opensearch:前缀的方式指定)而不是http://www.w3.org/2005/Atom。该变量的缺省值为null

 

共同基础框架也根植于抽象类javafx.data.feed.Base之上,这是描述了各种新闻推送元素的RSSAtom类的基类,RSSRSSAtomFeed这些顶层元素类是Base子类的例子。

Base提供了一个namespaces变量(类型为javafx.data.Pair[]),该变量包含了对元素有效的命名空间的定义,每个Pair的名称部分指明了命名空间前缀,值部分指定了命名空间URI

Base还提供了一个parent变量(类型为Base),该变量用来表示父(把其包含之内的)元素,例如,AtomEntry元素类的parent变量指向包含它的Feed实例,如果没有父元素(像Feed这种情况)的话,则该变量的值为null

最后要说的是,Base提供了几个函数,在需要创建自定义的推送解析器的时候,它们会派上用场,因为这项工作超出了本文的范围,你可以参考Rakesh Menon的这篇博客文章Custom Feed Parsers以了解更多的内容和例子。

 

 

 

 

 

[译文]了解用于读取RSS和Atom新闻推送的JavaFX API(二)

分享到:
评论

相关推荐

    JavaFX API文档

    当前的JavaFX包括JavaFX脚本和JavaFX Mobile(一种运营于行动装置的操作系统),今后JavaFX将包括更多的产品。JavaFX Script编程语言(以下称为JavaFX)是一种declarative, statically typed(声明性的、静态类型)...

    JavaFX api文档 chm格式

    JavaFX api文档 chm格式

    JavaFX API Documentation

    JavaFX API Documentation

    JavaFX api

    用于JavaFX学习的帮助文档JavaFX api,

    Jdk8 JavaFX API整合文档chm

    JAVA 8 官网API ,JavaFX 2.0 API官网 整合 生成CHM文件。

    javafx2.2 API文档

    JavaFX 2.2是Oracle公司推出的一个强大的Java图形用户界面(GUI)工具包,用于构建桌面、移动和Web应用程序。这个API文档是开发者在使用JavaFX 2.2进行开发时的重要参考资料,包含了所有类、接口、枚举和注解的详细...

    index.chm javaFX api document

    JavaFX 包含了一些列图形和媒体包,允许程序员设计、创建、测试、调试、和部署富客户端应用并且保持跨平台的操作一致性。 JavaFX 应用程序由 Java API 编写,可以调用任何 Java API 包。例如,可以调用 Java API ...

    JAVAFX API和虚拟机配置.zip

    JavaFX是Java平台上的一个强大的用户界面工具包,用于创建桌面、移动和Web的应用程序。它提供了丰富的图形和媒体功能,以及对2D和3D图形的支持,使得开发者能够构建美观且交互性强的用户界面。JavaFX API是这套工具...

    javaFxAPI(PDF版)

    本文将基于“JavaFX API (PDF版)”这一资源,深入解析其核心知识点,帮助读者全面理解JavaFX的核心组件、类库以及它们的应用场景。 ### JavaFX API概述 JavaFX API是JavaFX平台的核心组成部分,它为开发者提供了一...

    javafx8-api文档.rar

    javafx8api文档

    JavaFx-api

    JavaFx api帮助文档

    java8和javafxAPI

    Java 8 和 JavaFX API 是两个重要的开发工具,它们为Java开发者提供了丰富的功能和界面设计支持。本压缩包包含的 "Java8 API.chm" 和 "JavaFX_API.chm" 文件,是离线版的Java 8开发手册和JavaFX API文档,允许开发者...

    javafx 1.2.3API,javafx最新的API文档

    javafx的最新发布版本的最新API文档,包含目前新增所有包的信息!希望支持java!

    JavaFX2 API

    JavaFX2 API chm文件

    JavaFx2.0 api 手册

    Javafx 2.0 正式版本的api手册,方便使用。

    JavaFX2.2.1API

    JavaFX2 JavaFX2.2.1 apidoc api文档 JavaFX

    JAVAFX api

    进行javafx开发时使用的api工具书。方便随时查询。

    javafx-8_0_0-apidocs

    javafx-8_0_0-apidocs,该文档下载自官网,经本人制作而成方便使用的chm格式,我的更多下载资源:http://download.csdn.net/user/xubingtao。

    javafx+mysql新闻发布查询系统(News)

    在这个“javafx+mysql新闻发布查询系统”中,JavaFX被用作前端开发工具,用于构建用户界面,而MySQL则作为后端数据库,用于存储和管理新闻数据。 【MySQL数据库】 MySQL是一种广泛使用的开源关系型数据库管理系统...

Global site tag (gtag.js) - Google Analytics