org.apache.velocity.anakia
Class XPathTool

java.lang.Object
  extended by org.apache.velocity.anakia.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 463298 2006-10-12 16:10:32Z henning $
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(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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, 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(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
elem - 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
nodeSet - The nodeset context
Returns:
A list of selected nodes


Copyright © 2000-2008 The Apache Software Foundation. All Rights Reserved.