中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > J2SE
给JavaBeans 增加XPath功能
作者:未知 时间:2005-07-24 21:13 出处:JR 责编:chinaitpower
              摘要:给JavaBeans 增加XPath功能
本文是为ZDNet翻译的系列文章之一,原文已经发表在ZDNet网站

向一个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站点 。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有