PackageCom.swift.kaoshi;ImportJava.io.File;Importjava.util.List;ImportJava.util.Scanner;Importorg.dom4j.Document;Importorg.dom4j.DocumentException;Importorg.dom4j.Element;ImportOrg.dom4j.io.SAXReader;Importorg.junit.Test;/*<servlets> <servlet> <servlet-name>servlet1</servlet-name> <servlet-class>c n.itheima.servlets.myservlet1</servlet-class> </servlet> <servlet-mapping> <servlet-name >servlet1</servlet-name> <url-pattern>/s1</url-pattern> </servlet-mapping> <ser Vlet> <servlet-name>servlet2</servlet-name> <servlet-class>cn.itheima.servlets.myservle t2</servlet-class> </servlet> <servlet-mapping> <servlet-name>servlet2</servlet-na Me> <url-pattern>/s2</url-pattern> </servlet-mapping></servlets> Second, write the program, please parse the XML file as follows: 1. Receive the user input a string, for example: "/s1", the request program can be retrieved <servlet-mapping> element under the <url-pattern> element into the match, after matching to obtain the sibling <servlet-name The value of the > element, which is then retrieved by retrieving the value of the <servlet-name> element under the <servlet> element, after the match succeeds, gets the <url-pattern> value under the peer and prints the < The value of the url-pattern>. <servlet-class> Example: User input:/s1, console print: Cn.itheima.servlets.MyServlet1 user input:/S2, console print: Cn.itheima.servlets.MyServlet2 *///dom4j sax Traversal Public classdemo_dom4j { Public Static voidMain (string[] args)throwsException {//Saxreader reader = new Saxreader ();//Document document = Reader.read (new File ("Web. xml"));//String servlet_name = null;// //System.out.println ("Please enter a path string:");//Scanner scan = new Scanner (system.in);//String str = scan.nextline ();////Element root = Document.getrootelement ();//list<element> mappings = root.elements ("servlet-mapping");//For (Element element:mappings) {//System.out.println (element);//list<element> urls = element.elements ("Url-pattern");//For (Element url:urls) {//System.out.println (URL);//String Text=url.gettext ();//System.out.println (text);//if (text.equals (str)) {//Element name=element.element ("Servlet-name");//Servlet_name=name.gettext ();//System.out.println (servlet_name);// }// }// }//System.out.println ("===========================================================================");// //prepare to retrieve servlet//list<element> servlets=root.elements ("servlet");//For (Element servlet:servlets) {//System.out.println (servlet);//list<element> servlet_names=servlet.elements ("Servlet-name");//For (Element servlet_n:servlet_names) {//String Servlet_name1=servlet_n.gettext ();//System.out.println (servlet_name1);//if (servlet_name1.equals (Servlet_name)) {//Element servlet_class=servlet.element ("Servlet-class");//System.out.println ("The name of the class to be looked up is:" +servlet_class.gettext ());// }// }// }} @Test Public voidShow ()throwsException {Saxreader reader=NewSaxreader (); Document Document= Reader.read (NewFile ("Web. xml")); String Servlet_name=NULL; System.out.println ("Please enter a path string:"); Scanner Scan=NewScanner (system.in); String Str=Scan.nextline (); Element Root=document.getrootelement (); List<Element> mappings = root.elements ("servlet-mapping"); for(element element:mappings) {System.out.println (element); List<Element> urls = element.elements ("Url-pattern"); for(Element url:urls) {System.out.println (URL); String text=Url.gettext (); System.out.println (text); if(Text.equals (str)) {Element name=element.element ("Servlet-name"); Servlet_name=Name.gettext (); System.out.println (Servlet_name); }}} System.out.println ("==========================================================================="); //prepare to retrieve servletList<element> servlets=root.elements ("servlet"); for(Element servlet:servlets) {System.out.println (servlet); List<Element> servlet_names=servlet.elements ("Servlet-name"); for(Element servlet_n:servlet_names) {String servlet_name1=Servlet_n.gettext (); System.out.println (SERVLET_NAME1); if(Servlet_name1.equals (servlet_name)) {Element Servlet_class=servlet.element ("Servlet-class"); System.out.println ("The name of the class you want to find is:" +Servlet_class.gettext ()); } } } }}
Java base XML uses dom4j parsing XML file servlet finds class based on pattern