1 | package org.greenstone.gsdl3.util;
|
---|
2 |
|
---|
3 | // XML classes
|
---|
4 | import org.w3c.dom.Document;
|
---|
5 | import org.w3c.dom.Node;
|
---|
6 | import org.xml.sax.InputSource;
|
---|
7 | import javax.xml.parsers.*;
|
---|
8 | import org.apache.xindice.xml.TextWriter;
|
---|
9 | import org.apache.xerces.dom.TextImpl;
|
---|
10 | import org.apache.xerces.parsers.DOMParser;
|
---|
11 |
|
---|
12 | // other java classes
|
---|
13 | import java.io.Reader;
|
---|
14 | import java.io.StringReader;
|
---|
15 | import java.io.File;
|
---|
16 | import java.io.FileReader;
|
---|
17 |
|
---|
18 | /** XMLConverter - utitlity class for greenstone
|
---|
19 | *
|
---|
20 | * parses XML Strings into Documents, converts Nodes to Strings
|
---|
21 | * different parsers have different behaviour - can experiment in here
|
---|
22 | *
|
---|
23 | */
|
---|
24 | public class XMLConverter {
|
---|
25 |
|
---|
26 | /** JAXP parser factory */
|
---|
27 | protected DocumentBuilderFactory doc_build_fact_=null;
|
---|
28 | /** JAXP parser */
|
---|
29 | protected DocumentBuilder doc_builder_=null;
|
---|
30 |
|
---|
31 | /** xerces parser */
|
---|
32 | protected DOMParser parser_ = null;
|
---|
33 |
|
---|
34 | public XMLConverter() {
|
---|
35 | try {
|
---|
36 | doc_build_fact_ = DocumentBuilderFactory.newInstance();
|
---|
37 |
|
---|
38 | doc_builder_ = doc_build_fact_.newDocumentBuilder();
|
---|
39 | parser_ = new DOMParser();
|
---|
40 | } catch (Exception e) {
|
---|
41 | System.out.println("XMLConverter:exception "+e.getMessage());
|
---|
42 | }
|
---|
43 | }
|
---|
44 |
|
---|
45 | /** returns a DOM Document */
|
---|
46 | public Document getDOM(String in) {
|
---|
47 |
|
---|
48 | try {
|
---|
49 | Reader reader = new StringReader(in);
|
---|
50 | InputSource xml_source = new InputSource(reader);
|
---|
51 |
|
---|
52 | // Document doc = doc_builder_.parse(xml_source);
|
---|
53 | parser_.parse(xml_source);
|
---|
54 | Document doc = parser_.getDocument();
|
---|
55 | return doc;
|
---|
56 |
|
---|
57 | } catch (Exception e) {
|
---|
58 | System.out.println("XMLConverter.getDOM(String): exception "+e.getMessage());
|
---|
59 | }
|
---|
60 | return null;
|
---|
61 | }
|
---|
62 |
|
---|
63 | public Document getDOM(File in) {
|
---|
64 | try {
|
---|
65 |
|
---|
66 | Reader reader = new FileReader(in);
|
---|
67 | InputSource xml_source = new InputSource(reader);
|
---|
68 |
|
---|
69 | //Document doc = doc_builder_.parse(xml_source);
|
---|
70 | parser_.parse(xml_source);
|
---|
71 | Document doc = parser_.getDocument();
|
---|
72 |
|
---|
73 | return doc;
|
---|
74 |
|
---|
75 | } catch (Exception e) {
|
---|
76 | System.out.println("XMLConverter.getDOM(File): exception "+e.getMessage());
|
---|
77 | }
|
---|
78 | return null;
|
---|
79 | }
|
---|
80 |
|
---|
81 | /** creates a new empty DOM Document */
|
---|
82 | public Document newDOM() {
|
---|
83 | Document doc = doc_builder_.newDocument();
|
---|
84 | return doc;
|
---|
85 | }
|
---|
86 |
|
---|
87 | /** returns the Node as a String */
|
---|
88 | public String getString(Node doc) {
|
---|
89 | TextWriter t = new TextWriter(doc);
|
---|
90 | return t.toString();
|
---|
91 | }
|
---|
92 | }
|
---|