快速业务通道

使用JXPath访问java对象、集合和XML文件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
sInArray; }

2、扩展Association类,增加一个提供Company对象的Collection的方法

给Association类增加一个方法getCompanysInCollection方法,方法的签名和内容如下:public Collection getCompanysInCollection(){ for (int i = 0 ; i < 5 ; i++){ //实例化新的Company对象 Company comp = new Company(); comp.setId(i); comp.setName("Name" + i ); comp.setAddress("address" + i); //将实例化的对象增加到Collection中 companysInCollection.add(comp); } return companysInCollection; }

3.3.1 访问方法

通过JXPath访问数组的详细代码如下:

//实例化Association类 Association association = new Association(); //初始化JXPath上下文 JXPathContext context = JXPathContext.newContext(association); //使用Lenient访问模式访问嵌套属性 context.setLenient(true); //通过JXPath语法访问数组下标为4的记录的name属性 //getValue方法的参数"companysInArray[5]/name"中的 //部分companysInArray是Association的属性, //5代表访问数组中第5个元素,name表示第五个元素的属性名 String name = (String) context.getValue("companysInArray[5]/name"); //通过XPath语法访问集合中第4条记录的name属性 //getValue方法的参数" companysInColletion[5]/name"中的 //部分companysInColletion是Association的属性名, //5代表访问集合中第5个元素,name表示第五个元素的属性名 String name = (String) context.getValue("companysInColletion[5]/name");

[注] XPath访问数组或者集合时,数组或者集合的下标是从1开始,这点和java语言中规定的从0开始有点不同

使用JXPath访问java对象、集合和XML文件(5)

时间:2011-01-27

3.3.2 获取多条记录

既然是访问集合数据,那么经常会出现这样的需求:需要获得符合条件的多条记录。这种情况使用JXPath也非常方便,使用context对象的iterator方法加上相应的XPath信息就可以了,操作后返回的内容保存在Iterator对象中,非常方便就可以访问。具体的代码如下:

1、按记录所在的位置获取//实例化Association类 Association association = new Association(); //实例化JXPath上下文 JXPathContext context = JXPathContext.newContext(association); //获得数组中下标大于3的所有记录 //iterator方法的参数companysInArray [position() > 3]使用了XPath的语法 //其中的companysInArray是Association对象的属性,他是一个数组 // position()是XPath中的内置函数,获得记录在数组中的下标 Itarator companysInArray = context.iterate("companysInArray [position() > 3]"); //获得集合中所处位置大于3的所有记录 //iterator方法的参数companysInCollection [position() > 3]使用了XPath的语法 //其中的companysInCollection是Association对象的属性 //他是一个Collection类型或者是其子类型的一个实例 //position()是XPath中的内置函数,获得记录在集合中的位置 Itarator companysInCollection = context.iterate("companysInCollection [position() > 3]");

2、按指定的规则获取//实例化Association类 Association association = new Association(); //实例化JXPath上下文 JXPathContext context = JXPathContext.newContext(association); //获得数组中对象的name属性为''name3''的所有对象 //iterator方法的参数companysInArray [name=''name3'']使用了XPath的语法 //其中的companysInArray是Association对象的属性,他是一个数组 //name=''name3''是条件表达式,表示返回对象

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号