import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; /**
* 把xml文档信息封装到对象中
*
*/
public class Demo { public static void main(String[] args) throws Exception{
List<Contact> list = new ArrayList<Contact>(); //读取xml,封装对象
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("./src/contact.xml"));
//读取contact标签
Iterator<Element> it = doc.getRootElement().elementIterator("contact");
while(it.hasNext()){
Element elem = it.next();
//创建Contact
Contact contact = new Contact();
contact.setId(elem.attributeValue("id"));
contact.setName(elem.elementText("name"));
contact.setAge(elem.elementText("age"));
contact.setPhone(elem.elementText("phone"));
contact.setEmail(elem.elementText("email"));
contact.setQq(elem.elementText("qq"));
list.add(contact);
} for (Contact contact : list) {
System.out.println(contact);
} }
}

contact.xml

<?xml version="1.0" encoding="utf-8"?>
<contactList>
<contact id="001">
<name>张三</name>
<age>20</age>
<phone>134222223333</phone>
<email>zhangsan@qq.com</email>
<qq>432221111</qq>
</contact>
<contact id="002">
<name>李四</name>
<age>20</age>
<phone>134222225555</phone>
<email>lisi@qq.com</email>
<qq>432222222</qq>
</contact>
</contactList>

运行日志如下:

Contact [age=20, email=zhangsan@qq.com, id=001, name=张三, phone=134222223333, qq=432221111]
Contact [age=20, email=lisi@qq.com, id=002, name=李四, phone=134222225555, qq=432222222]

原理:

读取xml文档:
Document doc = new SAXReader().read("xml文件"); 节点:
nodeIterator(); 所有节点
标签:
element("名称") 指定名称的第一个子标签对象
elementIterator("名称"); 指定名称的所有子标签对象
elements(); 所有子标签对象
属性:
attributeValue(“名称”) 指定名称的属性值
attribute("名称") 指定名称的属性对象
getName() 属性名称
getValue() 属性值
atributeIterator() 所有属性对象(Iterator)
attributes() 所有属性对象(List)
文本:
getText() 得到当前标签的文本
elementText("子标签名称") 得到子标签的文本

最新文章

  1. java web之个人通讯录系统
  2. Python for Infomatics 第12章 网络编程三(译)
  3. Pattern Recognition for Cell-free DNA - Github
  4. mongodb字段类型转化
  5. Java Web项目 配置 ueditor心得
  6. MongoDB 初识1: 启动MongoDB
  7. Microsoft Office Visio Professional 2007密钥
  8. spring(7)--注解式控制器的数据验证、类型转换及格式化
  9. android 控件花屏问题
  10. Facebook 正式开源其大数据查询引擎 Presto
  11. CY7C68013A控制传输
  12. AX2012 ERP 维度相关表数据关系图
  13. 019_删除链表的倒数第N个节点
  14. Spring-boot之 rabbitmq
  15. Linux下more命令C语言实现实践 (Unix-Linux编程实践教程)
  16. python socket编程入门级
  17. 第106天:Ajax中同步请求和异步请求
  18. java中二维数组遍历
  19. 【云安全与同态加密_调研分析(4)】云计算安全领域主要研究成果——By Me
  20. mysql 使用order by

热门文章

  1. Delphi 通过ADO连接数据库
  2. 逆向破解 H.Koenig 遥控器 Part 1
  3. django 百度分页算法
  4. CSS基础学习-15.CSS3 动画效果
  5. 用github page为自己的项目编写文档
  6. postConstruct执行过程
  7. Mac常用设置备忘
  8. STM32F103C8T6最小板搞定CMSIS-DAP和SWO功能
  9. vue组件,vue补充和总结,JS循环遍历和加减运算、类型转换补充
  10. beautifulsoap常用取节点方法