jxpath学习笔记 - 编程入门网
jxpath学习笔记时间:2011-01-29 blogjava Skynetget set 参考 BeanUtil 包 和 Xpath http://commons.apache.org/ 的 jxpath User''s Guide 类的加载
一般取值 存值
一般的统计和使用 c 为 list [id,name,.....] JXPathContext context = JXPathContext.newContext(c);System.out.println( context.getValue("count( .[name=''oo'' and id=''1'' ] )") ); //对象 name=oo 和 id=1的有多少个System.out.println( context.getValue("sum( .[name=''oo'' and id=''1'' ]/id )") );//对象name=oo和id=1的所有id相加 得到集合
xpath 使用 public class Employee { private Map addressMap = new HashMap(); { addressMap.put("home", new Address(...)); addressMap.put("office", new Address(...)); } public Map getAddresses(){ return addressMap; } ...} String homeZipCode = (String)context. getValue("addresses[@name=''home'']/zipCode");//使用的是 addressMap map 的 key = home 的Address类属性的 zipCode xml 在程序 与 xpath 的切入点 <?xml version="1.0" ?> <vendor> <location id="store101"> <address> <street>Orchard Road</street> </address> </location> <location id="store102"> <address> <street>Tangerine Drive</street> </address> </location> </vendor>class Company { private Container locations = null; public Container getLocations(){ if (locations == null){ URL url = getClass().getResource("Vendor.xml"); locations = new XMLDocumentContainer(url); } return locations; } } ... context = JXPathContext.newContext(new Company()); ... String street = (String)context.getValue( "locations/vendor/location[@id = ''store102'']//street");// 类Container的 属性 locations 头 vendor(xml内) ..... jxpath学习笔记(2)时间:2011-01-29 blogjava Skynet建立 Path工厂 就是 自定义字符串 得到 自定义类 public class AddressFactory extends AbstractFactory { public boolean createObject(JXPathContext context, Pointer pointer, Object parent, String name, int index){ if ((parent instanceof Employee) && name.equals("address"){ ((Employee)parent).setAddress(new Address()); return true; } return false; } } JXPathContext context = JXPathContext.newContext(emp); context.setFactory(new AddressFactory()); context.createPath("address"); context.createPathAndS |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |