# HG changeset patch # User Ingo Weinzierl # Date 1275568535 0 # Node ID 9d530f9137298259954c26ad97448fc3dac43d13 # Parent d387a97807a36cacd63ff32d22a3b8a42c0999a0 Added a helper class to handle xml related stuff. geo-backend/trunk@1148 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r d387a97807a3 -r 9d530f913729 geo-backend/ChangeLog --- a/geo-backend/ChangeLog Mon May 31 07:23:21 2010 +0000 +++ b/geo-backend/ChangeLog Thu Jun 03 12:35:35 2010 +0000 @@ -1,3 +1,8 @@ +2010-06-03 Ingo Weinzierl + + * src/main/java/de/intevation/gnv/geobackend/util/XMLUtils.java: Some + functions to handle xml stuff. + 2010-05-31 Ingo Weinzierl * src/main/java/de/intevation/gnv/geobackend/base/query/DefaultQueryExceutor.java: diff -r d387a97807a3 -r 9d530f913729 geo-backend/src/main/java/de/intevation/gnv/geobackend/util/XMLUtils.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/geo-backend/src/main/java/de/intevation/gnv/geobackend/util/XMLUtils.java Thu Jun 03 12:35:35 2010 +0000 @@ -0,0 +1,61 @@ +package de.intevation.gnv.geobackend.util; + +import javax.xml.namespace.NamespaceContext; +import javax.xml.namespace.QName; + +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathExpressionException; +import javax.xml.xpath.XPathFactory; + +import org.apache.log4j.Logger; + + +/** + * @author Ingo Weinzierl + */ +public final class XMLUtils { + + private static Logger logger = Logger.getLogger(XMLUtils.class); + + + private XMLUtils() { + } + + + public static Object xpath( + Object root, + String query, + QName returnType, + NamespaceContext namespaceContext + ) { + if (root == null) { + return null; + } + + try { + XPath xpath = newXPath(namespaceContext); + + if (xpath != null) { + return xpath.evaluate(query, root, returnType); + } + } + catch (XPathExpressionException xpee) { + logger.error(xpee.getLocalizedMessage(), xpee); + } + + return null; + } + + + public static XPath newXPath(NamespaceContext namespaceContext) { + XPathFactory factory = XPathFactory.newInstance(); + XPath xpath = factory.newXPath(); + + if (namespaceContext != null) { + xpath.setNamespaceContext(namespaceContext); + } + + return xpath; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :