dmitri 2004/06/29 14:15:46 Modified: jxpath/src/java/org/apache/commons/jxpath JXPathContext.java Log: Added selectNodes and selectSingleNode methods Revision Changes Path 1.25 +37 -1 jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/JXPathContext.java Index: JXPathContext.java =================================================================== RCS file: /home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/JXPathContext.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- JXPathContext.java 4 Apr 2004 23:16:23 -0000 1.24 +++ JXPathContext.java 29 Jun 2004 21:15:46 -0000 1.25 @@ -16,8 +16,10 @@ package org.apache.commons.jxpath; import java.text.DecimalFormatSymbols; +import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.List; import java.util.Locale; /** @@ -623,6 +625,40 @@ */ protected abstract CompiledExpression compilePath(String xpath); + /** + * Finds the first object that matches the specified XPath. It is equivalent + * to <code>getPointer(xpath).getNode()</code>. Note, that this method + * produces the same result as <code>getValue()</code> on object models + * like JavaBeans, but a different result for DOM/JDOM etc., because it + * returns the Node itself, rather than its textual contents. + * + * @param xpath the xpath to be evaluated + * @return the found object + */ + public Object selectSingleNode(String xpath) { + Pointer pointer = getPointer(xpath); + if (pointer == null) { + return null; + } + return pointer.getNode(); + } + + /** + * Finds all nodes that match the specified XPath. + * + * @param xpath the xpath to be evaluated + * @return a list of found objects + */ + public List selectNodes(String xpath) { + ArrayList list = new ArrayList(); + Iterator iterator = iteratePointers(xpath); + while (iterator.hasNext()) { + Pointer pointer = (Pointer) iterator.next(); + list.add(pointer.getNode()); + } + return list; + } + /** * Evaluates the xpath and returns the resulting object. Primitive * types are wrapped into objects.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]