KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nu > xom > samples > StreamingTreeReporter


1 /* Copyright 2002, 2003 Elliotte Rusty Harold
2    
3    This library is free software; you can redistribute it and/or modify
4    it under the terms of version 2.1 of the GNU Lesser General Public
5    License as published by the Free Software Foundation.
6    
7    This library is distributed in the hope that it will be useful,
8    but WITHOUT ANY WARRANTY; without even the implied warranty of
9    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10    GNU Lesser General Public License for more details.
11    
12    You should have received a copy of the GNU Lesser General Public
13    License along with this library; if not, write to the
14    Free Software Foundation, Inc., 59 Temple Place, Suite 330,
15    Boston, MA 02111-1307 USA
16    
17    You can contact Elliotte Rusty Harold by sending e-mail to
18    elharo@metalab.unc.edu. Please include the word "XOM" in the
19    subject line. The XOM home page is located at http://www.xom.nu/
20 */

21
22 package nu.xom.samples;
23
24 import java.io.IOException JavaDoc;
25
26 import nu.xom.Builder;
27 import nu.xom.Element;
28 import nu.xom.NodeFactory;
29 import nu.xom.Nodes;
30 import nu.xom.ParsingException;
31
32
33 /**
34  * <p>
35  * Demonstrates recursive descent through an XML document,
36  * and the getter methods of the <code>Element</code>
37  * and <code>Attribute</code> classes.
38  * </p>
39  *
40  * @author Elliotte Rusty Harold
41  * @version 1.0
42  *
43  */

44 public class StreamingTreeReporter extends NodeFactory {
45
46     private Nodes empty = new Nodes();
47
48     // We don't really need the comments.
49
public Nodes makeComment(String JavaDoc data) {
50         return empty;
51     }
52
53     public Nodes makeText(String JavaDoc data) {
54         return empty;
55     }
56
57     public Nodes finishMakingElement(Element element) {
58         TreePrinter.inspect(element);
59         return new Nodes(element);
60     }
61
62     public Nodes makeDocType(String JavaDoc rootElementName,
63       String JavaDoc publicID, String JavaDoc systemID) {
64         return empty;
65     }
66
67     public Nodes makeProcessingInstruction(
68       String JavaDoc target, String JavaDoc data) {
69         return empty;
70     }
71
72     public static void main(String JavaDoc[] args) {
73   
74         if (args.length <= 0) {
75           System.out.println(
76             "Usage: java nu.xom.samples.StreamingTreeReporter URL"
77           );
78           return;
79         }
80         
81         try {
82           Builder parser = new Builder(new StreamingTreeReporter());
83           parser.build(args[0]);
84         }
85         catch (ParsingException ex) {
86           System.out.println(args[0] + " is not well-formed.");
87           System.out.println(ex.getMessage());
88         }
89         catch (IOException JavaDoc ex) {
90           System.out.println(
91            "Due to an IOException, the parser could not read "
92            + args[0]
93           );
94         }
95   
96     }
97
98 }
99
Popular Tags