服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

给javabeans增加xpath功能

向一个javabean请求´addressbook[1].state.code´ 是现在还在使用的和javabeans 进行交互的一个通常的方法,但是你现在可以更进一步使用功能更强大的xpath规范。

创建xpath的目的是访问和修改xml中的数据,但是apache jakarta的一个新项目允许你将强大的xpath规范的功能应用到普通的javabeans上。

作为一个例子,我们使用具有下面的结构的javabean :

person.name 是一个字符串 string

person.age 是一个整数

person.birthtown 是一个town对象

person.address 是一个address 对象的数组

town.name 是一个字符串

address.number 是一个字符串

address.street 是一个字符串

address.town 是一个town对象

(为了简单没有提供源代码)

对于给定的person对象,你可以使用"name"得到对象的名字,你可以使用"birthtown/name"得到出身地的名字,你也可以使用"address[number=´21´]/town/name"得到和地址(例如21)关联的城镇的名字。

除了更强大以外,xpath 和通常的bean符号的主要不同是使用反斜线(´/´)而不是句点(´.´)分隔元素,一旦你习惯这个特征就都会变得很简单。

下面的代码展示了使用jxpath 将xpath 符号应用到我们的javabean 结构是多么的简单:

import org.apache.commons.jxpath.jxpathcontext;

....

person person = ....;

jxpathcontext context = jxpathcontext.newcontext(person);

system.out.println(context.getvalue("name"));

system.out.println(context.getvalue("age"));

system.out.println(context.getvalue("birthtown/name"));

system.out.println(context.getvalue("address[number=´21´]/street"));

system.out.println(context.getvalue("address[number=´21´]/town/name"));

....

xpath可以用于设置值或者创建beans,当然也可以读取值,关于xpath和它的jxpath的实现的更多信息请参考jxpath(http://cl.com.com/click?q=07-hqwzi5r6thqfumbcrguiqzxyybfy)站点 。 

注:本文是为zdnet翻译的系列文章之一,原文已经发表在zdnet网站

扫描关注微信公众号