java 使用dom4j读取xml文件 示范代码(复制即可用)
项目结构
写在了src下的xml文件夹下
依赖包
dom4j 意思是 dom for java
我这里由于是测试,没有使用maven来管理依赖,因此我下载后存入了文件夹并add as library添加到了项目的依赖库中
jar包资源地址:https://download.csdn.net/download/HumorChen99/19857132 (不用积分)
xml内容
<?xml version="1.0" encoding="utf-8" ?>
<persons>
<person id="1">
<name>张三</name>
<age>18</age>
</person>
<person id="2">
<name>李四</name>
<age>20</age>
</person>
</persons>
读取代码
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.*;
import java.util.List;
/**
* 使用dom4j解析xml
*/
public class ParseXMLDemo {
public static void main(String[] args) throws IOException, DocumentException {
SAXReader reader = new SAXReader();
//打印下文件内容确保文件在
InputStream inputStream = ClassLoader.getSystemResourceAsStream("xml\\student.xml");
System.out.println("文件内容读取测试");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line = null;
while ((line = bufferedReader.readLine()) != null){
System.out.println(line);
}
//关闭流
inputStream.close();
bufferedReader.close();
System.out.println("\n\n");
System.out.println("xml读取测试");
InputStream is = ClassLoader.getSystemResourceAsStream("xml\\student.xml");
//读取整个文档
Document document = reader.read(is);
//拿根元素
Element rootElement = document.getRootElement();
List<Element> elements = rootElement.elements();
for (Element element : elements){
String tagName = element.getName();
String id = element.attribute("id").getValue();
System.out.println("标签名字:"+tagName+" id= "+ id);
if (tagName.equals("person")){
//继续读取名字和年龄
List<Element> list = element.elements();
for (Element element1 : list){
System.out.println(element1.getName()+":"+element1.getText());
}
}
}
//最后关闭流
is.close();
}
}
代码运行结果
本文来自博客园,作者:HumorChen99,转载请注明原文链接:https://www.cnblogs.com/HumorChen/p/18039598
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2020-06-27 Java进行N阶函数拟合