JXPath

This is a rough rendering of a page from the old Prevayler wiki. Please see the new wiki for current documentation.

[From http://jakarta.apache.org/commons/jxpath/index.html]:


The org.apache.commons.jxpath package defines a simple interpreter of an expression language called XPath. JXPath applies XPath expressions to graphs of objects of all kinds: JavaBeans, Maps, Servlet contexts, DOM etc, including mixtures thereof.

Consider this example:

Address address = (Address)JXPathContext.newContext(vendor).
         getValue("locations[address/zipCode='90210']/address");



This XPath expression is equvalent to the following Java code:

Address address = null;
Collection locations = vendor.getLocations();
Iterator it = locations.iterator();
while (it.hasNext()){
    Location location = (Location)it.next();
    String zipCode = location.getAddress().getZipCode();
    if (zipCode.equals("90210")){
      address = location.getAddress();
      break;
    }
}


XPath was standardized by W3C and is used in both XSLT and XPointer.

I've put a demo on how to query objects using JXPath and Prevayler. Take a look at the Demos page. -- CarlosVillela