Class XPathTool

java.lang.Object
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 Details

    • XPathTool

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

    • applyTo

      public NodeList applyTo(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(String xpathSpec, org.jdom.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