IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> XML解析 -> 正文阅读

[Java知识库]XML解析

  1. XML解析方式
    SAX: 速度快,但是不能修改元素内容
    DOM:速度慢,但是可以修改元素内容

  2. DOM4J解析
    这个固定格式称为坐标,编写坐标后
    maven会自动到远程中央仓库下载指定的jar包

<dependencies>
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
            <type>pom</type>
        </dependency>
    </dependencies>
  1. 解析XML分为四步
    1. 创建一个SAXReader
    2. 使用SAXReader读取XML获得多个Document对象
      注意:这个步骤比较耗时,将XML文件全部解析完成才能获得document对象
    3. 根据Document对象获得根元素
    4. 根据根元素获得所有XML元素
<list>
            <emp id="1">
                <name>张三</name>
                <age>18</age>
                <gender></gender>
                <salary>5000</salary>
            </emp>
            <emp id="2">
                <name>李四</name>
                <age>14</age>
                <gender></gender>
                <salary>4000</salary>
            </emp>
            <emp id="3">
                <name>张五</name>
                <age>22</age>
                <gender></gender>
                <salary>2000</salary>
            </emp>
            <emp id="4">
                <name>垃圾</name>
                <age>18</age>
                <gender></gender>
                <salart>3000</salart>
            </emp>
            <emp id="5">
                <name>三张三</name>
                <age>18</age>
                <gender></gender>
                <salary>1100</salary>
            </emp>
        </list>
	//准备一个集合接受所有员工
	List<Emp> emps = new ArrayList<>();
	//获取当前根元素的所有子元素
	List<Element> els = root.elements("emp");
	//遍历所有元素
	for(Element el : els){
		//获得员工ID
		Attribute att = el.attribute("id");
		String id = att.getValue();
		//第二种方法
		String id = el.attributeValue("id");
		System.out.println(id);

		//获得姓名
		Element nameEl = el.element(name);
		String empName = nameEl.getText();
		System.out.println(empName);

		//获得员工性别
		String empGender = el.elementText("gender");
		System.out.println(empGender);

		//获得性别
		String stringAge = el.elemenText("age");
		int empAge = Integer.parseInt(stringAge);
		System.out.println(empAge * 100);

		//直接获取工资
		int empSalary = Integer.parseInt(el.elementText("salary"));
		
		//通过有参构造加入emp对象中
		Emp emp = new Emp(id,empName,empGender,empAge,empSalary);
		emps.add(emp);
	}
  1. 相关api
    获取根元素的方法:Element getRootElement();
    每个Element又包含一些方法:
    String getName(); 返回标签的名字
    String getText(); 返回标签中包含的文本
    Element element(String name) 获得当前标签中指定的子标签
    List element() 返回当前标签中的所有子标签
    List element(String name)返回当前指定名字的所有子标签
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:12:19  更:2021-11-23 12:14:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:39:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码