1 21 22 package nu.xom.samples; 23 24 import java.io.IOException ; 25 26 import nu.xom.Builder; 27 import nu.xom.DocType; 28 import nu.xom.Document; 29 import nu.xom.Element; 30 import nu.xom.NodeFactory; 31 import nu.xom.Nodes; 32 import nu.xom.ParsingException; 33 34 46 public class RDDLFilter extends NodeFactory { 47 48 public final static String RDDL_NAMESPACE 49 = "http://www.rddl.org/"; 50 51 public Element startMakingElement(String name, String namespace) { 52 if (namespace.equals(RDDL_NAMESPACE)) return null; 53 return new Element(name, namespace); 54 } 55 56 public Nodes finishMakingElement(Element element) { 57 element.removeNamespaceDeclaration("rddl"); 58 return new Nodes(element); 59 } 60 61 public Nodes makeDocType(String rootElementName, 63 String publicID, String systemID) { 64 return new Nodes(new DocType("html", 65 "PUBLIC \"-//W3C//DTD XHTML Basic 1.0//EN\"", 66 "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd")); 67 } 68 69 public static void main(String [] args) { 70 71 if (args.length <= 0) { 72 System.out.println("Usage: java nu.xom.samples.RDDLFilter URL"); 73 return; 74 } 75 76 try { 77 Builder parser = new Builder(new RDDLFilter()); 78 Document doc = parser.build(args[0]); 79 System.out.println(doc.toXML()); 80 } 81 catch (ParsingException ex) { 82 System.out.println(args[0] + " is not well-formed."); 83 System.out.println(ex.getMessage()); 84 } 85 catch (IOException ex) { 86 System.out.println( 87 "Due to an IOException, the parser could not read " 88 + args[0] 89 ); 90 } 91 92 } 93 94 } | Popular Tags |