XML解析案例

需求:利用Dom4J的知识,将Contact.xml文件中的联系人数据封装成List集合,

其中每个元素是实体类Contact。打印输出 List 中的每个元素。

<?xml version="1.0" encoding="UTF-8"?>
<contactList>
<contact id="1" vip="true">
<name> 潘金莲 </name>
<gender>女</gender>
<email>panpan@itcast.cn</email>
</contact>
<contact id="2" vip="false">
<name>武松</name>
<gender>男</gender>
<email>wusong@itcast.cn</email>
</contact>
<contact id="3" vip="false">
<name>武大狼</name>
<gender>男</gender>
<email>wuda@itcast.cn</email>
</contact>
<user>
</user>
</contactList>
----------
public class Contact { //将读取到的数据存入Contact类
private String name;
private int id;
private boolean vip;
private char gender;
private String email;

构造器
  toString
  get Set
}
------------
核心代码
public class Dom4JTest2 {
public static void main(String[] args) throws Exception{
ArrayList<Contact> elements = new ArrayList<>();//用来储存Contact对象

//解析XML文件
SAXReader saxReader = new SAXReader();
InputStream is = saxReader.getClass().getResourceAsStream("/Contacts.xml");
Document document = saxReader.read(is);

//先拿根元素
Element root = document.getRootElement();
List<Element> list = root.elements("contact");
//通过根元素依次遍历一下每个子元素
for (Element element :list) {
elements.add(new Contact(element.elementTextTrim("name"),
Integer.valueOf(element.attributeValue("id")),
Boolean.valueOf(element.attributeValue("vip")),
element.elementTextTrim("gender").charAt(0),
element.elementText("email")));

}
//System.out.println(elements);
//10遍历List集合
for (Contact contact :elements) {
System.out.println(contact);
}
}
}

posted on 2022-04-06 11:14  我要当程序源  阅读(54)  评论(0编辑  收藏  举报

导航