XML

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);
//此read对象就是一颗Dom树,其访问节点,属性,文本的方法与DOM语法相同

//以下代码是遍历该Dom树
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");
}

}
}

XML.PNG



XML
http://blog.170827.xyz/2024/04/07/XML/
作者
XIAOBAI
发布于
2024年4月7日
许可协议