org.apache.velocity.anakia

Class XPathTool

public class XPathTool extends 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 $

Author: bob mcwhirter Jon S. Stevens Attila Szegedi

Constructor Summary
XPathTool()
Constructor does nothing, as this is mostly just objectified static methods
Method Summary
NodeListapplyTo(String xpathSpec, Document doc)
Apply an XPath to a JDOM Document
NodeListapplyTo(String xpathSpec, Element elem)
Apply an XPath to a JDOM Element
NodeListapplyTo(String xpathSpec, List nodeSet)
Apply an XPath to a nodeset

Constructor Detail

XPathTool

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

Method Detail

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 doc The Element context

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 doc The nodeset context

Returns: A list of selected nodes

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