public void setXPathVariableResolver(XPathVariableResolver resolver) { actual.setXPathVariableResolver(resolver); }
public XPathResolver() { resolver = new MyXPathVariableResolver(); XPathFactory xpfac = XPathFactory.newInstance(); xpfac.setXPathVariableResolver(resolver); xpath = xpfac.newXPath(); }
private XPathExpression getXPathExpression() throws XPathException { if (xpathExpr == null) { XPathFactory factory = XPathFactory.newInstance(); if (varContext != null) factory.setXPathVariableResolver(new VarResolver()); xpath = factory.newXPath(); if (nsContext != null) xpath.setNamespaceContext(nsContext); try { xpathExpr = xpath.compile(workingExpr); } catch (XPathExpressionException ex) { throw new XPathException(ex); } } return xpathExpr; }
public String evaluateExpression(Document document, String expression, URI uri, NamespaceContext namespaceContext) { XPathFactory factory = XPathFactory.newInstance(); factory.setXPathVariableResolver(new WsTestXPathVariableResolver(uri)); try { XPath xpath = factory.newXPath(); if (namespaceContext!=null) { xpath.setNamespaceContext(namespaceContext); } String result = xpath.evaluate(expression, document); logger.debug("Expression \"" + expression + "\" resolved to \"" + result+"\""); return result; } catch (XPathExpressionException e) { throw new ExpressionResolverException("Could not evaluate XPath expression \"" + expression + "\" : \"" + e.getMessage()+"\"", e); } }
/** * Creates a new customization info using the supplied * {@link Properties} object to resolve variables. * * @param properties contains variables and their values */ public PropertiesBasedCustomizationInfo(Properties properties) { this.properties = properties; XPathFactory xpfac = XPathFactory.newInstance(); xpfac.setXPathVariableResolver(new MyVariableResolver()); xpfac.setXPathFunctionResolver(new MyFunctionResolver()); HashMap<String, String> namespacePrefixes = new HashMap<String, String>(); namespacePrefixes.put("pfx", "http://www.pustefix-framework.org/2008/namespace/xpath-functions"); namespaceContext = new MapBasedNamespaceContext(namespacePrefixes); xpath = xpfac.newXPath(); xpath.setNamespaceContext(namespaceContext); try { dummyDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); } catch (ParserConfigurationException e) { throw new RuntimeException("Can't create dummy document for XPath evaluation", e); } }
try { XPathVariableResolver vresolver = (XPathVariableResolver) JavaClassHelper.instantiate(XPathVariableResolver.class, configurationEventTypeXMLDOM.getXPathVariableResolver(), ClassForNameProviderDefault.INSTANCE); xPathFactory.setXPathVariableResolver(vresolver); } catch (ClassInstantiationException ex) { throw new ConfigurationException("Error configuring XPath variable resolver for XML type '" + configurationEventTypeXMLDOM.getRootElementName() + "' : " + ex.getMessage(), ex);
xPathFactory.setXPathVariableResolver(vresolver);