/** * Returns the number value of the first item selected by applying the wrapped XPath expression to * the given context. * * @param context the element to use as context for evaluating the XPath expression. * @return the number value of the first item selected by applying the wrapped XPath expression to * the given context, <code>null</code> if no node was selected or the special value {@link * java.lang.Double#NaN} (Not-a-Number) if the selected value can not be converted into a * number value. * @throws JDOMException if the XPath expression is invalid or its evaluation on the specified * context failed. */ @Override public Number numberValueOf(Object context) throws JDOMException { try { navigator.setContext(context); return xPath.numberValueOf(context); } catch (JaxenException ex1) { throw new JDOMException( "XPath error while evaluating \"" + xPath.toString() + "\": " + ex1.getMessage(), ex1); } finally { navigator.reset(); } }
/** * Evaluates the wrapped XPath expression and returns the first entry in the list of selected * nodes (or atomics). * * @param context the node to use as context for evaluating the XPath expression. * @return the first selected item, which may be of types: {@link Element}, {@link Attribute}, * {@link Text}, {@link CDATA}, {@link Comment}, {@link ProcessingInstruction}, Boolean, * Double, String, or <code>null</code> if no item was selected. * @throws JDOMException if the evaluation of the XPath expression on the specified context * failed. */ @Override public Object selectSingleNode(Object context) throws JDOMException { try { navigator.setContext(context); return unWrapNS(xPath.selectSingleNode(context)); } catch (JaxenException ex1) { throw new JDOMException( "XPath error while evaluating \"" + xPath.toString() + "\": " + ex1.getMessage(), ex1); } finally { navigator.reset(); } }
/** * Adds a namespace definition to the list of namespaces known of this XPath expression. * * <p><strong>Note</strong>: In XPath, there is no such thing as a 'default namespace'. The empty * prefix <b>always</b> resolves to the empty namespace URI. * * @param namespace the namespace. */ @Override public void addNamespace(Namespace namespace) { navigator.includeNamespace(namespace); }