从 Java 程序中查询 XML
Elliotte Harold(elharo@metalab.unc.edu), 副教授, Polytechnic University
简介: XPath 表达式比繁琐的文档对象模型(DOM)导航代码要容易编写得多。如果需
要从 XML 文档中提取信息,最快捷、最简单的办法就是在 Java™ 程序中嵌入 XPath 表
达式。Java 5 推出了 javax.xml.xpath 包,这是一个用于 XPath 文档查询的独立于 XML
对象模型的库。
如果要告诉别人买一加仑牛奶,您会怎么说?“请去买一加仑牛奶回来” 还是 “从前门出去,
向左转,走三个街区向右转,再走半个街区向右转进入商店。走向四号通道,沿通道走五
米向左,拿一瓶一加仑装的牛奶然后到收银台付款。再沿原路回家。” 简直太可笑了。只
要在 “请去买一加仑牛奶回来” 的基础上稍加指示,多数成人都能自己买回牛奶来。
查询语言和计算机搜索与此类似。直接说 “找一个 Cryptonomicon 的副本” 要比编写搜索
某个数据库的详细逻辑容易得多。由于搜索操作的逻辑非常相似,可以发明一种通用语言
让您使用 “找到 Neal Stephenson 的所有著作” 这样的命令,然后编写对特定数据存储执行
此类查询的引擎。
XPath
在众多查询语言之中,结构化查询语言(SQL)是一种针对查询特定类型的关系库而设计
和优化的语言。其他不那么常见的查询语言还有对象查询语言(OQL)和 XQuery。但本
文的主题是 XPath,一种为查询 XML 文档而设计的查询语言。比如,下面这个简单的
XPath 查询可以在文档中找到作者为 Neal Stephenson 的所有图书的标题:
作为对照,查询同样信息的纯 DOM 搜索代码如 清单 1 所示:
清单 1. 找到 Neal Stephenson 所有著作 title 元素的 DOM 代码
!"#$%!#
&'( !!))*
"#"# #
!"#$%!#
&
&+'+( !!+))*
"#"# #+
!,
!$-!$-
&'( !!))*
#
.
& !% %"/%012"*
!3
4
4
评论1