Mercurial > dive4elements > river
comparison flys-aft/src/main/java/de/intevation/utils/XML.java @ 4095:da9df3641578
Send XML messages via HTTP POST around if the FLYS database has changed.
flys-aft/trunk@3614 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 06 Jan 2012 12:10:40 +0000 |
parents | 44dc38ca8492 |
children | b195fede1c3b |
comparison
equal
deleted
inserted
replaced
4094:b20b710aa86f | 4095:da9df3641578 |
---|---|
3 import java.io.FileInputStream; | 3 import java.io.FileInputStream; |
4 import java.io.BufferedInputStream; | 4 import java.io.BufferedInputStream; |
5 import java.io.File; | 5 import java.io.File; |
6 import java.io.IOException; | 6 import java.io.IOException; |
7 import java.io.InputStream; | 7 import java.io.InputStream; |
8 import java.io.OutputStream; | |
9 import java.io.StringWriter; | |
8 | 10 |
9 import org.w3c.dom.Document; | 11 import org.w3c.dom.Document; |
10 | 12 |
11 import javax.xml.parsers.DocumentBuilderFactory; | 13 import javax.xml.parsers.DocumentBuilderFactory; |
12 import javax.xml.parsers.ParserConfigurationException; | 14 import javax.xml.parsers.ParserConfigurationException; |
28 | 30 |
29 import javax.xml.transform.Transformer; | 31 import javax.xml.transform.Transformer; |
30 import javax.xml.transform.TransformerFactory; | 32 import javax.xml.transform.TransformerFactory; |
31 import javax.xml.transform.TransformerConfigurationException; | 33 import javax.xml.transform.TransformerConfigurationException; |
32 import javax.xml.transform.TransformerException; | 34 import javax.xml.transform.TransformerException; |
33 | 35 import javax.xml.transform.TransformerFactoryConfigurationError; |
36 | |
37 import javax.xml.transform.stream.StreamResult; | |
34 import javax.xml.transform.stream.StreamSource; | 38 import javax.xml.transform.stream.StreamSource; |
35 | 39 |
36 import javax.xml.transform.dom.DOMSource; | 40 import javax.xml.transform.dom.DOMSource; |
37 import javax.xml.transform.dom.DOMResult; | 41 import javax.xml.transform.dom.DOMResult; |
38 | 42 |
68 return variables.get(key); | 72 return variables.get(key); |
69 } | 73 } |
70 } // class MapXPathVariableResolver | 74 } // class MapXPathVariableResolver |
71 | 75 |
72 private XML() { | 76 private XML() { |
77 } | |
78 | |
79 /** | |
80 * Creates a new XML document | |
81 * @return the new XML document ot null if something went wrong during | |
82 * creation. | |
83 */ | |
84 public static final Document newDocument() { | |
85 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); | |
86 factory.setNamespaceAware(true); | |
87 | |
88 try { | |
89 return factory.newDocumentBuilder().newDocument(); | |
90 } | |
91 catch (ParserConfigurationException pce) { | |
92 log.error(pce.getLocalizedMessage(), pce); | |
93 } | |
94 return null; | |
73 } | 95 } |
74 | 96 |
75 /** | 97 /** |
76 * Loads a XML document namespace aware from a file | 98 * Loads a XML document namespace aware from a file |
77 * @param file The file to load. | 99 * @param file The file to load. |
252 log.error(te, te); | 274 log.error(te, te); |
253 } | 275 } |
254 | 276 |
255 return null; | 277 return null; |
256 } | 278 } |
279 | |
280 /** | |
281 * Streams out an XML document to a given output stream. | |
282 * @param document The document to be streamed out. | |
283 * @param out The output stream to be used. | |
284 * @return true if operation succeeded else false. | |
285 */ | |
286 public static boolean toStream(Document document, OutputStream out) { | |
287 try { | |
288 Transformer transformer = | |
289 TransformerFactory.newInstance().newTransformer(); | |
290 DOMSource source = new DOMSource(document); | |
291 StreamResult result = new StreamResult(out); | |
292 transformer.transform(source, result); | |
293 return true; | |
294 } | |
295 catch (TransformerConfigurationException tce) { | |
296 log.error(tce.getLocalizedMessage(), tce); | |
297 } | |
298 catch (TransformerFactoryConfigurationError tfce) { | |
299 log.error(tfce.getLocalizedMessage(), tfce); | |
300 } | |
301 catch (TransformerException te) { | |
302 log.error(te.getLocalizedMessage(), te); | |
303 } | |
304 | |
305 return false; | |
306 } | |
307 | |
308 public static String toString(Document document) { | |
309 try { | |
310 Transformer transformer = | |
311 TransformerFactory.newInstance().newTransformer(); | |
312 DOMSource source = new DOMSource(document); | |
313 StringWriter out = new StringWriter(); | |
314 StreamResult result = new StreamResult(out); | |
315 transformer.transform(source, result); | |
316 out.flush(); | |
317 return out.toString(); | |
318 } | |
319 catch (TransformerConfigurationException tce) { | |
320 log.error(tce.getLocalizedMessage(), tce); | |
321 } | |
322 catch (TransformerFactoryConfigurationError tfce) { | |
323 log.error(tfce.getLocalizedMessage(), tfce); | |
324 } | |
325 catch (TransformerException te) { | |
326 log.error(te.getLocalizedMessage(), te); | |
327 } | |
328 | |
329 return null; | |
330 } | |
257 } | 331 } |
258 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 332 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |