1 21 22 package nu.xom.samples; 23 24 import java.io.IOException ; 25 26 import nu.xom.Builder; 27 import nu.xom.Document; 28 import nu.xom.Element; 29 import nu.xom.Attribute; 30 import nu.xom.Nodes; 31 import nu.xom.NodeFactory; 32 import nu.xom.ParsingException; 33 34 35 46 public class StreamingElementLister extends NodeFactory{ 47 48 private int depth = 0; 49 private Nodes empty = new Nodes(); 50 51 public static void main(String [] args) { 52 53 if (args.length == 0) { 54 System.out.println( 55 "Usage: java nu.xom.samples.StreamingElementLister URL" 56 ); 57 return; 58 } 59 60 Builder builder = new Builder(new StreamingElementLister()); 61 62 try { 63 builder.build(args[0]); 64 } 65 catch (ParsingException ex) { 66 System.out.println(args[0] + " is not well-formed."); 67 System.out.println(ex.getMessage()); 68 } 69 catch (IOException ex) { 70 System.out.println(ex); 71 } 72 73 } 74 75 public Nodes makeComment(String data) { 77 return empty; 78 } 79 80 public Nodes makeText(String data) { 82 return empty; 83 } 84 85 public Element startMakingElement(String name, String namespace) { 86 depth++; 87 printSpaces(); 88 System.out.println(name); 89 return new Element(name, namespace); 90 } 91 92 public Nodes finishMakingElement(Element element) { 93 depth--; 94 if (element.getParent() instanceof Document) { 95 return new Nodes(element); 96 } 97 else return empty; 98 } 99 100 public Nodes makeAttribute(String name, String URI, 101 String value, Attribute.Type type) { 102 return empty; 103 } 104 105 public Nodes makeDocType(String rootElementName, 106 String publicID, String systemID) { 107 return empty; 108 } 109 110 public Nodes makeProcessingInstruction( 111 String target, String data) { 112 return empty; 113 } 114 115 private void printSpaces() { 116 for (int i = 0; i <= depth; i++) { 117 System.out.print(' '); 118 } 119 } 120 121 } 122 | Popular Tags |