向一个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网站
闽公网安备 35060202000074号