org.apache.velocity.anakia

Class XPathTool


public class XPathTool
extends java.lang.Object

This class adds an entrypoint into XPath functionality, for Anakia.

All methods take a string XPath specification, along with a context, and produces a resulting java.util.List.

The W3C XPath Specification (http://www.w3.org/TR/xpath) refers to NodeSets repeatedly, but this implementation simply uses java.util.List to hold all Nodes. A 'Node' is any object in a JDOM object tree, such as an org.jdom.Element, org.jdom.Document, or org.jdom.Attribute.

To use it in Velocity, do this:

 #set $authors = $xpath.applyTo("document/author", $root)
 #foreach ($author in $authors)
   $author.getValue() 
 #end
 #set $chapterTitles = $xpath.applyTo("document/chapter/@title", $root)
 #foreach ($title in $chapterTitles)
   $title.getValue()
 #end
 

In newer Anakia builds, this class is obsoleted in favor of calling selectNodes() on the element directly:

 #set $authors = $root.selectNodes("document/author")
 #foreach ($author in $authors)
   $author.getValue() 
 #end
 #set $chapterTitles = $root.selectNodes("document/chapter/@title")
 #foreach ($title in $chapterTitles)
   $title.getValue()
 #end
 

Version:
$Id: XPathTool.java,v 1.13.4.1 2004/03/03 23:22:04 geirm Exp $
Authors:
bob mcwhirter
Jon S. Stevens
Attila Szegedi

Constructor Summary

XPathTool()
Constructor does nothing, as this is mostly just objectified static methods

Method Summary

NodeList
applyTo(String xpathSpec, Document doc)
Apply an XPath to a JDOM Document
NodeList
applyTo(String xpathSpec, Element elem)
Apply an XPath to a JDOM Element
NodeList
applyTo(String xpathSpec, List nodeSet)
Apply an XPath to a nodeset

Constructor Details

XPathTool

public XPathTool()
Constructor does nothing, as this is mostly just objectified static methods

Method Details

applyTo

public NodeList applyTo(String xpathSpec,
                        Document doc)
Apply an XPath to a JDOM Document
Parameters:
xpathSpec - The XPath to apply
doc - The Document context
Returns:
A list of selected nodes

applyTo

public NodeList applyTo(String xpathSpec,
                        Element elem)
Apply an XPath to a JDOM Element
Parameters:
xpathSpec - The XPath to apply
Returns:
A list of selected nodes

applyTo

public NodeList applyTo(String xpathSpec,
                        List nodeSet)
Apply an XPath to a nodeset
Parameters:
xpathSpec - The XPath to apply
Returns:
A list of selected nodes

Copyright B) 2002 Apache Software Foundation. All Rights Reserved.