xml的约束与解析

DTD约束

需要在头部引入:

<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">

格式:

<web-app>
    <servlet>
        <servlet-name></servlet-name>
        <servlet-class></servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name></servlet-name>
        <url-pattern></url-pattern>
    </servlet-mapping>
</web-app>

约束:

?可以出现,但只能出现一次

*允许出现任意次数,0

+最少出现一次,可多次

()分组  

|选择一个  a|b

,需要按指定顺序  a,b,c

Schema约束

需要在头部添加

<web-app xmlns="http://www.example.org/web-app_2_5"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/web-app_2_5 web-app_2_5.xsd"
version="2.5">

DOM4J解析

    //创建解析器对象
     SAXReader sax=new SAXReader();
        //加载xml文件获取dom对象
        Document doc=sax.read("src/com/oracle/demo02/web.xml");
        //获得根元素web-app
        Element root=doc.getRootElement();
        //先获取根下的servlet元素
        Element servlet=root.element("servlet");
        //获取servlet下的servlet-class元素对象
        Element servletClass=servlet.element("servlet-class");
        //获取完整的包名+类名
        String classname=servletClass.getText();
        System.out.println(classname);
        //反射调用MyServlet中的所有方法
        Class c=Class.forName(classname);
        MyServlet my=(MyServlet)c.newInstance();
        my.init();//创建
        my.service();//执行
        my.destroy();//结束

 

posted on 2019-10-31 09:43  流光若影  阅读(254)  评论(0编辑  收藏  举报