专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » xpath:给JavaBeans 增加XPath功能 »正文

xpath:给JavaBeans 增加XPath功能

来源: 发布时间:星期三, 2008年9月10日 浏览:61次 评论:0
本文是为ZDNet翻译的系列文章之一,原文已经发表在ZDNet网站

向一个JavaBean请求\'addressbook[1].state.code\'是现在还在使用的和JavaBeans进行交互的一个通常的方法,但是你现在可以更进一步使用功能更强大的XPath规范。
创建XPath的目的是访问和修改XML中的数据,但是ApacheJakarta的一个新项目允许你将强大的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结构是多么的简单:
importorg.apache.commons.jxpath.JXPathContext;

....
Personperson=....;
JXPathContextcontext=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站点。

标签:xpath语法 xpath

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: