java中利用dom4j解析XML文件
官网下载Dom4j地址:https://dom4j.github.io/
注意:使用Dom4j开发,需下载dom4j相应的jar文件
题目:后台利用dom4j解析student.xml文件,并返回List<Student>集合
需要解析的XML:
<?xml version="1.0" encoding="UTF-8"?>
<classes>
<class name="ST01">
<student id="10001">user1</student>
<student id="10002">user2</student>
<student id="10003">user3</student>
</class>
<class name="ST02">
<student id="10004">user4</student>
<student id="10005">user5</student>
<student id="10006">user6</student>
</class>
<class name="ST03">
<student id="10007">user7</student>
<student id="10008">user8</student>
<student id="10009">user9</student>
</class>
<class name="ST04">
<student id="10010">user10</student>
<student id="10011">user12</student>
<student id="10012">user13</student>
</class>
<class name="ST05">
<student id="10013">user14</student>
<student id="10014">user15</student>
<student id="10015">user16</student>
</class>
</classes>
java解析xml代码:
/**
* @author hh
*/
public class XmlUtil {
/**
* 读取xml学生列表信息
* @return
*/
public List<Student> listStudent(){
//创建SAXReader对象
SAXReader reader=new SAXReader();
Document document = null;
try {
//通过read方法读取一个文件 转换成Document对象
document = reader.read(new File("/Users/mac/Documents/students.xml"));
} catch (DocumentException e) {
e.printStackTrace();
}
//获取根节点元素对象
Element node = document.getRootElement();
return elementMethod(node);
} /**
* 获取节点中的信息
* @param node
* @return
*/
private List<Student> elementMethod(Element node){
List<Student> list = new ArrayList<Student>();
//获取所有class 节点
List<Element> elementClass = node.elements("class");
for (Element aClass : elementClass) {
//获取所有student节点
List<Element> elelmentStu=aClass.elements("student");
for (Element element : elelmentStu) {
//创建学生对象
Student stu = new Student();
//class节点里name的值
stu.setSclazz(aClass.attribute("name").getValue());
//student节点里ID的值
stu.setSid(element.attribute("id").getValue());
//student节点里的String值
stu.setSname(element.getStringValue()); list.add(stu);
}
} return list;
}
}
实体类:
/**
* @author hh
*/
public class Student {
private String sname;
private String sid;
private String sclazz; public String getSname() {
return sname;
} public void setSname(String sname) {
this.sname = sname;
} public String getSid() {
return sid;
} public void setSid(String sid) {
this.sid = sid;
} public String getSclazz() {
return sclazz;
} public void setSclazz(String sclazz) {
this.sclazz = sclazz;
} @Override
public String toString() {
return "Student{" +
"sname='" + sname + '\'' +
", sid='" + sid + '\'' +
", sclazz='" + sclazz + '\'' +
'}';
}
}
@Test 代码:
public class StudentDaoTest {
@Test
public void testlistStudent(){
List<Student> list = new XmlUtil().listStudent();
for (Student student : list) {
System.out.println(student);
}
}
}
运行结果:

java中利用dom4j解析XML文件的更多相关文章
- java中采用dom4j解析xml文件
一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...
- 转:在java中使用dom4j解析xml
JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...
- 在java项目中怎样利用Dom4j解析XML文件获取数据
在曾经的学习.net时常常会遇到利用配置文件来解决项目中一些须要常常变换的数据.比方数据库的连接字符串儿等.这个时候在读取配置文件的时候.我们一般会用到一个雷configuration,通过这个类来进 ...
- JAVA中使用DOM解析XML文件
XML是一种方便快捷高效的数据保存传输的格式,在JSON广泛使用之前,XML是服务器和客户端之间数据传输的主要方式.因此,需要使用各种方式,解析服务器传送过来的信息,以供使用者查看. JAVA作为一种 ...
- java代码用dom4j解析xml文件的简单操作
时间: 2016/02/17 目标:为telenor的ALU Femto接口写一个采集xml文件并解析出locationName标签里的值,然后更新到数据库中. 从网上搜了下,有四种常用的解析xml的 ...
- 在java中使用dom4j解析xml
创建xml文档并输出到文件 import java.io.File; import java.io.FileOutputStream; import org.dom4j.Document; impor ...
- Java中实现SAX解析xml文件到MySQL数据库
大致步骤: 1.Java bean 2.DBHelper.java 3.重写DefaultHandler中的方法:MyHander.java 4.循环写数据库:SAXParserDemo.java ① ...
- 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】
一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...
- Java进阶(二十七)使用Dom4j解析XML文件
使用Dom4j解析XML文件 写在前面的话 由于论文实验要求,需要实现操作XML文档,为此想到了dom4j这个工具,使用之后深感受益.在此分享给大家,以此共勉. 注:本文转载自http://blog. ...
随机推荐
- clion调试postgresql
clion怎么调试postgresql呢? clion使用cmake去编译项目的,但是大家编译postgresql用的是make.虽然项目中也有CMakeLists.txt文件,但是cmake会报错, ...
- 敏感词汇过滤DFA算法
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...
- 基于SpringMVC+Spring+MyBatis实现秒杀系统【概况】
前言 本教程使用SpringMVC+Spring+MyBatis+MySQL实现一个秒杀系统.教程素材来自慕课网视频教程[https://www.imooc.com/learn/631].有感兴趣的可 ...
- vue_drf之实现极验滑动验证码
一.需求 1,场景 我们在很多登录和注册场景里,为了避免某些恶意攻击程序,我们会添加一些验证码,也就是行为验证,让我们相信现在是一个人在交互,而不是一段爬虫程序.现在市面上用的比较多的,比较流行的是极 ...
- mybatis-generator插件执行报错:Cannot resolve classpath entry
记录一个小问题 使用了mybatis-generator插件自动生成实体类,DAO,Mapper,在执行时报错.报错信息如下 Failed to execute goal org.mybatis.ge ...
- SpringBoot学习(六)-->SpringBoot的自动配置的原理
Spring Boot的自动配置的原理 Spring Boot在进行SpringApplication对象实例化时会加载META-INF/spring.factories文件,将该配置文件中的配置载入 ...
- 启动sql2012时出现Cannot find one or more components.Please reinstall the application
①在运行中输入regedit.exe,启动注册表工具 ②找到注册表中的此处路径“HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management S ...
- 从零开始学安全(十三)●SQL server 2008 R2 安装
安装过程1.下载并解压 sql_server_2008_r2_enterprise 点击 setup . 2.打开后如图,点击左侧的 安装 ,再点击右边的 全新安装或向现有安装添加功能. 3.安装支持 ...
- asp.net-基础-20180321
C#与.NET的关系 C#不是语言,.net是平台.
- String为什么是不可变的?
前几天一个面试被问到String为什么是不可变的?, 自我感觉当时回答的不太理想, 事后总结一下 不可变的是什么 我们谈论的String不可变, 指的是字符串的值不可变 例: String s = & ...