1、基本概念
(1)XML是EXtensible Markup Language 的缩写,翻译过来就是可扩展标记语言。所以很明显,XML和HTML一样都是标记语言,也就是说它们的基本语法都是标签。
(2)可扩展:XML允许自定义格式。
(3)在XML基本语法规范的基础上,你使用的那些第三方应用程序、框架会通过XML约束的方式强制规定配置文件中可以写什么和怎么写。
(4)XML基本认识:不需要从零开始,从头到尾的一行一行编写XML文档,而是在第三方应用程序、框架已提供的配置文件的基础上修改。要改成什么样取决于你的需求,而怎么改取决XML基本语法和具体的XML约束。
2、基本使用
2.1 前提条件
(1)先下载 dom4j.jar 这个包。
(2)jdbc.xml 的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<jdbc>
<dev id="001">
<username>root</username>
<password>root</password>
<driver>com.mysql.cj.jdbc.Driver</driver>
<url>jdbc:mysql://1ocalhost:3306/atguigu</url>
</dev>
<test id="002">
<username>zhangsan</username>
<password>123456</password>
<driver>com.mysql.cj.jdbc.Driver</driver>
<url>jdbc:mysql://1ocalhost:3306/atguigu</url>
</test>
<formal id="003">
<username>lisi</username>
<password>123456</password>
<driver>com.mysql.cj.jdbc.Driver</driver>
<url>jdbc:mysql://1ocalhost:3306/atguigu</url>
</formal>
</jdbc>
(3)Main.java 的内容如下
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.testng.annotations.Test;
import java.io.InputStream;
import java.util.List;
public class Main {
@Test
public void testRead() throws Exception {
//读取jdbc.xml配置文件,获得document对象
SAXReader saxReader = new SAXReader();
//通过类加战器获得指向字节码根路经下的指定文件的输入流
InputStream resourceAsStream = Main.class.getClassLoader().getResourceAsStream("jdbc.xml");
//通过输入流获得配置文件,解析成一个dom对象
Document document = saxReader.read(resourceAsStream);
//从document列象上获取配置文作的信息
/*
Node 节点
Element 元素结点
Attribute 属性节点
Text 文本节点
*/
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");
System.out.println("\t\t" + idAttribute.getName()+"="+idAttribute.getValue());
//继续读取子元素
List<Element> eles = element.elements();
for(Element ele:eles) {
System.out.println("\t\t" + ele.getName() + ":" + ele.getText());
}
}
}
}
(4)运行结果
本文为学习笔记,所参考文章均已附上链接,若有疑问请私信!
创作不易,如果对你有点帮助的话麻烦点个赞支持一下!
新手小白,欢迎留言指正!