org.apache.velocity.anakia
Class XPathTool

java.lang.Object
  |
  +--org.apache.velocity.anakia.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 $
Author:
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(java.lang.String xpathSpec, org.jdom.Document doc)
          Apply an XPath to a JDOM Document
 NodeList applyTo(java.lang.String xpathSpec, org.jdom.Element elem)
          Apply an XPath to a JDOM Element
 NodeList applyTo(java.lang.String xpathSpec, java.util.List nodeSet)
          Apply an XPath to a nodeset
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Constructor Detail

XPathTool

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

applyTo

public NodeList applyTo(java.lang.String xpathSpec,
                        org.jdom.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(java.lang.String xpathSpec,
                        org.jdom.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(java.lang.String xpathSpec,
                        java.util.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 © 2002 Apache Software Foundation. All Rights Reserved.