KickJava   Java API By Example, From Geeks To Geeks.

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


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.Node;
28 import nu.xom.ParsingException;
29
30
31 /**
32  *
33  * <p>
34  * Demonstrates recursive descent through a document.
35  * </p>
36  *
37  * @author Elliotte Rusty Harold
38  * @version 1.0
39  *
40  */

41 public class TreeReporter {
42
43     public static void main(String JavaDoc[] args) {
44      
45         if (args.length <= 0) {
46           System.out.println(
47             "Usage: java nu.xom.samples.TreeReporter URL"
48           );
49           return;
50         }
51          
52         TreeReporter iterator = new TreeReporter();
53         try {
54           Builder parser = new Builder();
55           
56           // Read the entire document into memory
57
Node document = parser.build(args[0]);
58           
59           // Process it starting at the root
60
iterator.followNode(document);
61     
62         }
63         catch (IOException JavaDoc ex) {
64           System.out.println(ex);
65         }
66         catch (ParsingException ex) {
67           System.out.println(ex);
68         }
69   
70     } // end main
71

72     private PropertyPrinter printer = new PropertyPrinter();
73   
74   // note use of recursion
75
public void followNode(Node node) throws IOException JavaDoc {
76     
77         printer.writeNode(node);
78         for (int i = 0; i < node.getChildCount(); i++) {
79             followNode(node.getChild(i));
80         }
81     
82   }
83
84 }
Popular Tags