使用Java技术将Atom转换为RDF - 编程入门网
m() 和 createRdf()。第一个方法是阅读器,第二个方法是写入器。
为确保从 Atom 提要中读取的信息能够用于 AtomToRdf 对象中的所有方法,必须声明两个局部可用的对象变量,如 清单 5 所示。一个是 Channel 类的一个实例(称为 channel)。另一个是包含一个或多个 Item 对象的 List 对象(称为 itemList)。 清单 6 显示了 parseAtom() 方法的开始部分。该方法使用 StAX 来解析 Atom 提要。这段代码首先实例化一个新的 XMLInputFactory 对象,然后打开一个包含 Atom 格式的 ******* public timeline 的 InputStream 对象。这个 StAX InputFactory 从 InputStream 创建一个 XMLEventReader 对象。在 “拖动—解析” Atom 提要的过程中,StAX 用这个对象来识别 事件。事件的一些例子比如文档启动、元素启动和元素结束。 清单 6. 开始解析 Atom
要处理这两个 <title> 元素,这个 isEntry Boolean 用于区分它们。如果 Boolean 为 True,解析器检查 <title> 元素,该元素是 <entry> 的一个子元素。 变量 currentItem 用于存储输出文件中的每个 <item> 节中将包含的信息。每次解析器遇到输入文件中的另一个 <entry> 元素时,一个新的 currentItem 对象将被实例化。每次解析器遇到 <entry> 元素的结尾时,现有的 currentItem 对象添加到 Item 对象列表(itemList)。 最后,清单 6 开始解析器循环。本质上,那条 while 语句的意思是 “只要解析器遇到 任何事件,它将重复执行大括号({})里面的代码。” 急需解决的问题是:将遇到哪种事件?如何处理这些事件?请看 清单 7。 清单 7. 解析 Title 元素
当这段代码遇到一个事件时,它首先检查这个事件是不是一个新元素的开端。如果是,则一个 StartElement 对象被实例化。然后检查这个元素的名字。如果这个元素的名字是 title,这段代码将把该元素的实际内容放到字符串变量 title 中。 还记得 isEntry 变量吗?这个变量将在这里使用,因为 — 您可能还记得 — 命名为 title 的元素出现在 Atom 提要的两个位置。如果 isEntry 设置为 True,代码知道检查一个文档的标题,而不是整个提要的标题。对于前一种情况,将设置 currentItem 对象的 title 属性;对于后一种情况,将设置 channel 对象的 title 属性。 最后,continue 语句是一条标准的 Java 语句,它的意思是 “只要到此就继续循环”。换句话说,当代码处理完这个事件后,将开始寻找更多事件。 如果您查看整个代码,您将发现有许多代码块与 清单 7 中的代码类似。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |