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''是条件表达式,表示返回对象 |