org.apache.velocity.anakia
public class XPathTool extends Object
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 $
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
|
Parameters: xpathSpec The XPath to apply doc The Document context
Returns: A list of selected nodes
Parameters: xpathSpec The XPath to apply doc The Element context
Returns: A list of selected nodes
Parameters: xpathSpec The XPath to apply doc The nodeset context
Returns: A list of selected nodes