javaee dom4j读取xml文件

引入jar包

dom4j-1.6.1.jar

创建xml文件

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<books>
   <book id="1">
      <title ID="t1">背影</title>
      <price>88</price>
      <author>三毛</author>
   </book>
    <book id="2">
      <title>天龙八部</title>
      <price>99</price>
      <author>金庸</author>
   </book>
    <book id="3">
      <title>鹿鼎记</title>
      <price>108</price>
      <author>金庸</author>
   </book>
</books>

创建java文件

java 复制代码
package com.test.xml;

import java.io.InputStream;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class ReadXml {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.获得xml文件的流对象(输入流)
		InputStream iStream=  ReadXml.class.getResourceAsStream("/Books.xml");
		//2.创建SAXReader解析器,读取xml文件到dom文档树对象中
		SAXReader saxReader=new SAXReader();
		try {
			Document document=  saxReader.read(iStream);
			
			//3.读取dom树中的节点
			
			//1)获得跟节点
			Element root=  document.getRootElement();
			
			//返回节点的名称
			System.out.println(root.getName());
			
			List<Element> bookElements=  root.elements();
			
			for(Element book:bookElements)
			{
				 System.out.println(book.getName());
				 
				 //根据节点的名称找孩子节点
				 Element title=book.element("title");				 		 
				 
				 System.out.println(title.getText()); //获得节点的内容
				 
				 //根据属性的名称找到属性
				 Attribute attribute= book.attribute("id");
				 //输出属性的值
				 System.out.println(attribute.getText());
				//输出属性的值方式2
				 System.out.println(book.attributeValue("id"));
				 
			}
			
			Element title=document.elementByID("t1");// id属性名是大写
			System.out.println(title.getText());
			
			
			
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		

	}

}

运行

相关推荐
曲幽37 分钟前
FastAPI缓存提速实战:手把手教你用Redis为接口注入“记忆”
redis·python·cache·fastapi·web·asyncio
no245441042 分钟前
RAGFlow 全面接入 MinerU 2.0,支持 pipeline、vlm-transformers、vlm-sglang 三种模式,解析精度大幅度up
java·大数据·人工智能·python·ai·sglang
Hello.Reader1 小时前
CSV Format Flink / PyFlink 读写 CSV 的正确姿势(含 Schema 高级配置)
大数据·python·flink
小陈phd1 小时前
langGraph从入门到精通(三)——基于LangGraph的智能问答系统开发:Python单代理架构实战
开发语言·python·架构
轻竹办公PPT1 小时前
AI 自动生成 PPT 实用吗?深度体验后的客观评价
人工智能·python·powerpoint
Java后端的Ai之路1 小时前
【Python教程02】-列表和元组
服务器·数据库·python·列表·元组
好好学仿真1 小时前
探索超表面智能设计:当FDTD仿真遇上Python优化
python·联合仿真·机器学习算法·光学·fdtd·超表面逆向设计·超表面器件设计
沈浩(种子思维作者)1 小时前
量子AI真的可以在经典物理硬件中实现吗?
人工智能·python·量子计算
走遍西兰花.jpg1 小时前
修改jupyter 的默认路径
python·jupyter
errorPage2 小时前
Python空值判断避坑指南 + 图片定点缩放逻辑优化实战
python