From scm-commit at wald.intevation.org Thu Nov 17 13:17:16 2016 From: scm-commit at wald.intevation.org (scm-commit at wald.intevation.org) Date: Thu, 17 Nov 2016 13:17:16 +0100 Subject: [Schmitzm-commits] r2424 - trunk/schmitzm-core/src/main/java/de/schmitzm/xml Message-ID: <20161117121716.57C8898D4A28@wald.intevation.org> Author: mojays Date: 2016-11-17 13:17:16 +0100 (Thu, 17 Nov 2016) New Revision: 2424 Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/xml/XMLUtil.java Log: XMLUtil: new utility method buildSaxDocumentUTF8(.) Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/xml/XMLUtil.java =================================================================== --- trunk/schmitzm-core/src/main/java/de/schmitzm/xml/XMLUtil.java 2016-07-14 18:50:48 UTC (rev 2423) +++ trunk/schmitzm-core/src/main/java/de/schmitzm/xml/XMLUtil.java 2016-11-17 12:17:16 UTC (rev 2424) @@ -31,6 +31,11 @@ import java.awt.Color; import java.awt.Font; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.net.URL; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -41,11 +46,14 @@ import java.util.Vector; import org.apache.log4j.Logger; +import org.jdom.Document; import org.jdom.Element; +import org.jdom.JDOMException; import org.jdom.adapters.JAXPDOMAdapter; import org.jdom.input.SAXBuilder; import org.jdom.output.Format; import org.jdom.output.XMLOutputter; +import org.xml.sax.InputSource; import de.schmitzm.i18n.Translation; import de.schmitzm.lang.LangUtil; @@ -71,7 +79,21 @@ /** A builder to read an XML file. */ public static final SAXBuilder SAX_BUILDER = new SAXBuilder(); + /** + * Builds an XML document from given URL using UTF-8 for input stream. + * @param url Document URL + */ + public static Document buildSaxDocumentUTF8(URL url) throws IOException, JDOMException { + InputStream inputStream= url.openStream(); + Reader reader = new InputStreamReader(inputStream,"UTF-8"); + InputSource is = new InputSource(reader); + is.setEncoding("UTF-8"); + Document d = XMLUtil.SAX_BUILDER.build(is); + + return d; + } + /** * Returns the content of i-th sub-child of an element or {@code null} if the * path can not be tracked because a child does not exist.