XML

5 阅读1分钟

XML 配置文件

JDBC 环境变量配置:

<?xml version="1.0" encoding="UTF-8"?>
<jdbc>
    <dev>
        <username>root</username>
        <password>root</password>
        <driver>com.mysql.cj.jdbc.Driver</driver>
        <url>jdbc:mysql://localhost:3306/atguigu</url>
    </dev>
    <test>
        <username>zhangsan</username>
        <password>123456</password>
        <driver>com.mysql.cj.jdbc.Driver</driver>
        <url>jdbc:mysql://localhost:3306/atguigu</url>
    </test>
    <formal>
        <username>lisi</username>
        <password>654321</password>
        <driver>com.mysql.cj.jdbc.Driver</driver>
        <url>jdbc:mysql://localhost:3306/atguigu</url>
    </formal>
</jdbc>

基本语法

  1. XML文档声明: 这部分本上就是定格式, <?xml version="1.0" encoding="UTF-8"?>
  2. 根标签只能有一个
  3. 标签关闭:开始标签和结束标签必须成对出现,单标签在标签内关闭。
  4. 标签嵌套:标签可以嵌套,但是不能交叉嵌套,注释不能嵌套。
  5. 标签名、属性名建议用小些字母
  6. 属性:属性必须有值,属性值必须加引号,单双都行。

XML的约束

XML 的约束 (稍微了解):将来主要就是根据 XML 约束中的规定来编写 XML 配置文件,在编写 XML 的时候,编辑工具会根据约束提示。XML 约束主要包括 DTD 和 Schema 两种。以下是一个 web.xml 约束的示例:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" 
         version="4.0">

DOM4J XML

  • 使用步骤:
  1. 入jar dom4j.jar
  2. 解器对(SAXReader)
  3. 解xml 获得Document对
  4. 获根点RootElement
  5. 获根点下的点
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.testng.annotations.Test;
import java.io.FileInputStream;
import java.io.InputStream; 

public class TestDom4j { 
    @Test
    public void testRead() throws Exception{ 
        // 读取jdbc.xml配置文件, 获得document对象 
        SAXReader saxReader = new SAXReader();
        // 通过类加载器获得指向字节码根路径下的指定文件的输入流 
        InputStream resourceAsStream = TestDom4j.class.getClassLoader().getResourceAsStream("jdbc.xml"); // 通过输入流获得配置文件, 解析成一个dom对象
        Document document = saxReader.read(resourceAsStream); 
        // 从document对象上获取配置文件中的信息 
        Element rootElement = document.getRootElement(); 
        System.out.println(rootElement.getName());
        // 获取元素下的子元素
        List<Element> elements = rootElement.elements();
        for (Element element : elements) {
            System.out.println("\t"+element.getName());
            Attribute idAttribute = element.attribute("id");
            ...
        }
    }
}