1 56 57 import java.io.*; 58 import java.util.*; 59 import org.jdom.*; 60 import org.jdom.input.*; 61 import org.jdom.output.*; 62 import org.jdom.xpath.*; 63 64 72 public class XPathReader { 73 74 public static void main(String [] args) throws IOException, JDOMException { 75 if (args.length != 1) { 76 System.err.println("Usage: java XPathReader [web.xml]"); 77 return; 78 } 79 String filename = args[0]; 80 PrintStream out = System.out; 81 82 SAXBuilder builder = new SAXBuilder(); 83 Document doc = builder.build(new File(filename)); 84 85 XPath servletPath = XPath.newInstance("//servlet"); 87 List servlets = servletPath.selectNodes(doc); 88 89 out.println("This WAR has "+ servlets.size() +" registered servlets:"); 90 Iterator i = servlets.iterator(); 91 while (i.hasNext()) { 92 Element servlet = (Element) i.next(); 93 out.print("\t" + servlet.getChild("servlet-name") 94 .getTextTrim() + 95 " for " + servlet.getChild("servlet-class") 96 .getTextTrim()); 97 List initParams = servlet.getChildren("init-param"); 98 out.println(" (it has " + initParams.size() + " init params)"); 99 } 100 101 XPath rolePath = XPath.newInstance("//security-role/role-name/text()"); 103 List roleNames = rolePath.selectNodes(doc); 104 105 if (roleNames.size() == 0) { 106 out.println("This WAR contains no roles"); 107 } else { 108 out.println("This WAR contains " + roleNames.size() + " roles:"); 109 i = roleNames.iterator(); 110 while (i.hasNext()) { 111 out.println("\t" + ((Text)i.next()).getTextTrim()); 112 } 113 } 114 } 115 } 116 | Popular Tags |