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 463298 2006-10-12 16:10:32Z henning $
    Author:
    bob mcwhirter, Jon S. Stevens, Attila Szegedi
    • Constructor Summary

      Constructors 
      Constructor Description
      XPathTool()
      Constructor does nothing, as this is mostly just objectified static methods
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      NodeList applyTo​(java.lang.String xpathSpec, java.util.List nodeSet)
      Apply an XPath to a nodeset
      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
      • 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​(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
        elem - 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
        nodeSet - The nodeset context
        Returns:
        A list of selected nodes