1 | package org.greenstone.gsdl3.util;
|
---|
2 |
|
---|
3 | // XML classes
|
---|
4 | import javax.xml.transform.Transformer;
|
---|
5 | import javax.xml.transform.TransformerFactory;
|
---|
6 | import javax.xml.transform.TransformerConfigurationException;
|
---|
7 | import javax.xml.transform.TransformerException;
|
---|
8 |
|
---|
9 | import javax.xml.transform.stream.StreamSource;
|
---|
10 | import javax.xml.transform.dom.DOMSource;
|
---|
11 | import javax.xml.transform.stream.StreamResult;
|
---|
12 |
|
---|
13 | // other java classes
|
---|
14 | import java.io.StringReader;
|
---|
15 | import java.io.StringWriter;
|
---|
16 |
|
---|
17 | /** XMLConverter - utitlity class for greenstone
|
---|
18 | *
|
---|
19 | * parses XML Strings into Documents, converts Nodes to Strings
|
---|
20 | * different parsers have different behaviour - can experiment in here
|
---|
21 | *
|
---|
22 | */
|
---|
23 | public class XMLTransformer {
|
---|
24 |
|
---|
25 | TransformerFactory t_factory_=null;
|
---|
26 |
|
---|
27 | public XMLTransformer() {
|
---|
28 | try {
|
---|
29 | t_factory_ = TransformerFactory.newInstance();
|
---|
30 |
|
---|
31 | } catch (Exception e) {
|
---|
32 | System.out.println("XMLTransformer() exception "+e.getMessage());
|
---|
33 | }
|
---|
34 | }
|
---|
35 |
|
---|
36 |
|
---|
37 |
|
---|
38 | public String transform(String stylesheet, String xml_in) {
|
---|
39 |
|
---|
40 | try {
|
---|
41 | // Use the TransformerFactory to process the stylesheet Source and generate a Transformer.
|
---|
42 | Transformer transformer = t_factory_.newTransformer(new StreamSource(stylesheet));
|
---|
43 |
|
---|
44 | // Use the Transformer to transform an XML Source and send the output to a Result object.
|
---|
45 | StringWriter output = new StringWriter();
|
---|
46 |
|
---|
47 | transformer.transform(new StreamSource(new StringReader(xml_in)), new StreamResult(output));
|
---|
48 | return output.toString();
|
---|
49 | } catch (TransformerConfigurationException e) {
|
---|
50 | System.err.println("XMLTransformer: couldn't create transformer object");
|
---|
51 | return "";
|
---|
52 | } catch (TransformerException e) {
|
---|
53 | System.err.println("XMLTransformer: couldn't transform the source");
|
---|
54 | return "";
|
---|
55 | }
|
---|
56 | }
|
---|
57 | }
|
---|
58 |
|
---|
59 |
|
---|