XML
XML(Extensible Markup Language)可扩展标记语言
- XML允许自定义格式
- XML在基本语法规范的前提下,第三方程序和框架会通过XML约束的方式强制规定配置文件中可以写什么和怎么写
常见配置文件类型
- properties文件,例如druid连接池就是使用properties文件作为配置文件
- XML文件,例如Tomcat就是使用XML文件作为配置文件
- YAML文件,例如Spring Boot就是用YAML作为配置文件
- json文件,通常作为文件传输,也可以用来作前端或移动端的配置文件
XML的书写规范和约束
- 根标签只能有一个
- 第一行永远都是<?xml version=”1.0” encoding=”UTF-8”?> 前面没有别的东西
- xml有约束,约束用于限定XML内部能编写的内容
- dtd 简单 上手快 约束没有schema细致
- schema 复杂 上手慢 约束要比dtd细致
使用DOM4J进行XML解析
DOM4J是java用来解析XML文件的工具jar包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> <jdbc> <dev> <driverClassName>com.mysql.cj.jdbc.Driver</driverClassName> <url>jdbc:mysql://192.168.2.2:3306/xiaobai</url> <username>root</username> <password>Zhuwenxue2002</password> </dev> <test> <driverClassName>com.mysql.cj.jdbc.Driver</driverClassName> <url>jdbc:mysql:///xiaobai</url> <username>root</username> <password>123456</password> </test> </jdbc>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| package com.xiaobai.xml;
import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.junit.Test;
import java.io.InputStream; import java.util.List;
public class Dom4jTest { @Test public void testDom4j() throws Exception { SAXReader reader = new SAXReader(); InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("jdbc.xml"); Document read = reader.read(resourceAsStream);
Element rootElement = read.getRootElement(); System.out.println(rootElement.getName()); List<Element> elements = rootElement.elements(); for (Element element : elements) { System.out.println("\t" + element.getName()); List<Element> elements1 = element.elements(); for (Element element1 : elements1) { System.out.printf("\t\t" + element1.getName() + ":" + element1.getText()); } System.out.println("\n"); }
} }
|
