admin管理员组

文章数量:1530040

一、问题提出

现给出一contact.xml文件,文件中存有联系人的姓名、电话和性别。提出以下需求:

读取contact.xml文件的时候,将contact标签信息封装成Contact联系人对象,最终将联系人对象遍历出来。

contact.xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<!--使用xml文件来标签联系人,姓名 性别 电话-->
<contact-list>

    <contact id="001">
        <name>张三</name>
        <phone>18292886805</phone>
        <gender>男</gender>
    </contact>

    <contact id="002">
        <name>李四</name>
        <phone>18293689805</phone>
        <gender>女</gender>
    </contact>

    <contact id="003">
        <name>王五</name>
        <phone>13659682305</phone>
        <gender>女</gender>
    </contact>

    <contact id="004">
        <name>赵六</name>
        <phone>18965236355</phone>
        <gender>女</gender>
    </contact>
        </contact-list>

二、问题分析

该问题的目的:xml文件---->List:arrayList,链表中的每个元素都是联系人对象。

List<Contact>  Contact->name,phone,gender

三、具体步骤  

        1)读xml文件
        2)获取所有的contact节点

        3)遍历每个contact节点对象
        4)获取其中的每个属性,并封装为Contact对象。
        5)加入到List<Contact>中。

四、代码实现

package com.xunpu.xml.TestXml;

public class Contact {
    private String name;
    private String phone;
    private String gender;

    public Contact(String name,String phone,String gender){
        this.name=name;
        this.phone=phone;
        this.gender=gender;
    }
    @Override
    public String toString() {
        return "Contact{" +
                "name='" + name + '\'' +
                ", phone='" + phone + '\'' +
                ", gender='" + gender + '\'' +
                '}';
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}
package com.xunpu.xml.TestXml;

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

import java.util.ArrayList;
import java.util.List;

//需求:读取contact.xml文件的时候,将contact标签信息封装成Contact联系人对象,最终将联系人对象遍历出来。
//目的:xml文件---->List:arrayList
//        List<Contact>  Contact->name,phone,gender
//        1)遍历每个contact节点
//        2)获取其中的每个属性,并封装为Contact对象
//        3)加入到List<Contact>中。
public class TestContact {
    private static List<Contact> list=new ArrayList<Contact>();
    public static void main(String[] args) throws DocumentException {
        //1)读xml文件
        Document doc=new SAXReader().read(TestContact.class.getClassLoader().getResource("contact.xml"));
        //2)遍历每个contact节点
        //获取所有的contact节点,返回一个链表,链表中的元素是contact节点对象
       List<Element> conlist= doc.getRootElement().elements("contact");
       //遍历每个contact标签
        for(Element e:conlist){
//            //获取所有的属性
//            List<Attribute> attrlist=e.elements();
            //获取所有的属性名和属性值
            Element nameElem=e.element("name");
            String name=nameElem.getText();
            Element phoneElem=e.element("phone");
           String phone=phoneElem.getText();
           Element genderElem=e.element("gender");
           String gender=genderElem.getText();
           //将得到的值封装为一个对象
            Contact contact=new Contact(name,phone,gender);
            //将联系人加入到链表中
           list.add(contact);
        }
        //遍历每个联系人
        for(int i=0;i<list.size();i++){
            System.out.println(list.get(i));
        }
    }
}

 

本文标签: 联系人对象文件XMLContact