zoukankan      html  css  js  c++  java
  • xml

    xml作用:配置文件,存放数据

    不同的xml起到不同的作用:比如说web项目的中的配置文件起到配置路径作用,以及跳转请求的作用。hibernate的配置文件起到配置连接数据库和相关属性以及对实体类和关系型数据库进行映射的的作用,spring的配置文件起到配置javabean的实例化以及整合框架的作用。还有一些xml文件中存放了一些数据供程序读取。

    xml语法: 文档声明,元素

    DTD约束:一般很少自建xml格式,使用框架提供的约束文档,struct2 

    DTD的使用:引入  <!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">,引入后使用指定格式(在elipse中会提示类型错误)

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
    <web-app version="1.0">
        <servlet>
            <servlet-name></servlet-name>
            <servlet-class></servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name></servlet-name>
            <url-pattern></url-pattern>
        </servlet-mapping>
        <welcome-file-list>
            <welcome-file></welcome-file>
        </welcome-file-list>
    </web-app>
    DTD约束使用

    Schema约束:新的xml文档约束,比dtd强大,功能更强大,spring框架使用该

    <?xml version="1.0" encoding="UTF-8"?>
    <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">
    
        <servlet>
            <servlet-name>helloServlet</servlet-name>
            <servlet-class>xxxxxxxxxx</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>helloServlet</servlet-name>
            <url-pattern>/hello</url-pattern>
        </servlet-mapping>
    </web-app>
    引入Schema约束

    xml解析:3种方式1.document解析  2.sax解析 3.pull

    常见解析器开发包:

    使用dom4j解析器器解析:

    package cn.itheima.xml.dom4j;
    
    import java.util.List;
    
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    import org.junit.Test;
    
    public class TestDom4j {
        @Test
        public void testReadWebXML() {
            try {
                // 1.获取解析器
                SAXReader saxReader = new SAXReader();
                // 2.获得document文档对象
                Document doc = saxReader.read("src/cn/itheima/xml/schema/web.xml");
                // 3.获取根元素
                Element rootElement = doc.getRootElement();
                // System.out.println(rootElement.getName());//获取根元素的名称
                // System.out.println(rootElement.attributeValue("version"));//获取根元素中的属性值
                // 4.获取根元素下的子元素
                List<Element> childElements = rootElement.elements();
                // 5.遍历子元素
                for (Element element : childElements) {
                    //6.判断元素名称为servlet的元素
                    if ("servlet".equals(element.getName())) {
                        //7.获取servlet-name元素
                        Element servletName = element.element("servlet-name");
                        //8.获取servlet-class元素
                        Element servletClass = element.element("servlet-class");
                        System.out.println(servletName.getText());
                        System.out.println(servletClass.getText());
                    }
                }
    
            } catch (DocumentException e) {
                e.printStackTrace();
            }
        }
    
    }
    View Code
  • 相关阅读:
    【Quartz】Quartz将Job保存在数据库中所需表的说明
    第十章 springboot + logback
    第二章 rabbitmq在mac上的安装
    第九章 springboot + mybatis + 多数据源 (AOP实现)
    第一章 AOP
    第八章 springboot + mybatis + 多数据源
    第三章 线程安全的DateFormat工具类
    第六章 consul UI
    第五章 consul key/value
    附1 consul常用命令+常用选项
  • 原文地址:https://www.cnblogs.com/hellowq/p/9374118.html
Copyright © 2011-2022 走看看