Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1501369
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 19:21:36

一起学习
向一个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站点 。 下载本文示例代码


给JavaBeans 增加XPath功能给JavaBeans 增加XPath功能给JavaBeans 增加XPath功能给JavaBeans 增加XPath功能给JavaBeans 增加XPath功能给JavaBeans 增加XPath功能给JavaBeans 增加XPath功能给JavaBeans 增加XPath功能给JavaBeans 增加XPath功能给JavaBeans 增加XPath功能给JavaBeans 增加XPath功能给JavaBeans 增加XPath功能
阅读(128) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~