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.Node; 29 import nu.xom.ParsingException; 30 import nu.xom.Text; 31 32 33 43 public class ROT13XML { 44 45 public static void encode(Node node) { 47 48 if (node instanceof Text) { 49 Text text = (Text) node; 50 String data = text.getValue(); 51 text.setValue(rot13(data)); 52 } 53 54 for (int i = 0; i < node.getChildCount(); i++) { 56 encode(node.getChild(i)); 57 } 58 59 } 60 61 public static String rot13(String s) { 62 63 StringBuffer out = new StringBuffer (s.length()); 64 for (int i = 0; i < s.length(); i++) { 65 int c = s.charAt(i); 66 if (c >= 'A' && c <= 'M') out.append((char) (c+13)); 67 else if (c >= 'N' && c <= 'Z') out.append((char) (c-13)); 68 else if (c >= 'a' && c <= 'm') out.append((char) (c+13)); 69 else if (c >= 'n' && c <= 'z') out.append((char) (c-13)); 70 else out.append((char) c); 71 } 72 return out.toString(); 73 74 } 75 76 public static void main(String [] args) { 77 78 if (args.length <= 0) { 79 System.out.println("Usage: java nu.xom.samples.ROT13XML URL"); 80 return; 81 } 82 83 String url = args[0]; 84 85 try { 86 Builder parser = new Builder(); 87 88 Document document = parser.build(url); 90 91 ROT13XML.encode(document); 93 94 System.out.println(document.toXML()); 96 97 } 98 catch (IOException ex) { 99 System.out.println( 100 "Due to an IOException, the parser could not encode " + url 101 ); 102 } 103 catch (ParsingException ex) { 104 System.out.println(ex); 105 } 106 107 } 109 } 110 | Popular Tags |