1 21 22 package nu.xom.samples; 23 24 import java.io.IOException ; 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 42 public class StreamingNodeLister extends NodeFactory { 43 44 private Nodes empty = new Nodes(); 45 46 public static void main(String [] args) { 47 48 if (args.length == 0) { 49 System.out.println( 50 "Usage: java nu.xom.samples.StreamingNodeLister URL" 51 ); 52 return; 53 } 54 55 Builder builder = new Builder(new StreamingNodeLister()); 56 57 try { 58 builder.build(args[0]); 59 } 60 catch (ParsingException ex) { 62 System.out.println(args[0] + " is not well-formed."); 63 System.out.println(ex.getMessage()); 64 } 65 catch (IOException ex) { 66 System.out.println(ex); 67 } 68 69 } 70 71 private int depth = 0; 72 73 public Nodes makeComment(String data) { 74 printSpaces(); 75 System.out.println("Comment"); 76 return empty; 77 } 78 79 public Nodes makeText(String data) { 80 printSpaces(); 81 System.out.println("Text"); 82 return empty; 83 } 84 85 public Element startMakingElement(String name, String namespace) { 86 depth++; 87 printSpaces(); 88 System.out.println("Element: " + name); 89 return super.startMakingElement(name, namespace); 90 } 91 92 public Nodes finishMakingElement(Element element) { 93 depth--; 94 return new Nodes(element); 95 } 96 97 public Nodes makeDocType(String rootElementName, 98 String publicID, String systemID) { 99 System.out.println("DOCTYPE"); 100 return empty; 101 } 102 103 public Nodes makeProcessingInstruction( 104 String target, String data) { 105 printSpaces(); 106 System.out.println("Processing instruction: " + target); 107 return empty; 108 } 109 110 private void printSpaces() { 111 112 for (int i = 0; i < depth; i++) { 113 System.out.print(' '); 114 } 115 116 } 117 118 } 119 | Popular Tags |