首页 > 代码库 > 爪哇国新游记之十三----XML文件读写

爪哇国新游记之十三----XML文件读写

/** * XML读写示例 * @author hx * */public class XmlReaderWriter{    /**     * 读取一个XML文件,返回一个雇员链表     * @param fileName     * @return     */    public List<Employee> readXml(String fileName){        List<Employee> employees=new ArrayList<Employee>();                SAXReader reader = new SAXReader();        try {            Document  document = reader.read(new File(fileName));            Element root = document.getRootElement();                        List nodes = root.elements("employee");            for (Iterator it = nodes.iterator(); it.hasNext();) {                Employee employee=new Employee();                                // 根节点下的雇员子节点                Element employeeElm = (Element) it.next();                                // 获取雇员子节点的id属性                Attribute attribute=employeeElm.attribute("id");                employee.setId(Long.parseLong(attribute.getText()));// 将文本形式的long字符串还原成基本类型                                // 获得雇员子节点的名称子节点                Element nameElm=employeeElm.element("name");                employee.setName(nameElm.getText());// 获取名称子节点的文字                                // 获取雇员子节点的性别子节点的文字                employee.setMale(Boolean.parseBoolean(employeeElm.element("ismale").getText()));                                // 将雇员信息放入链表                employees.add(employee);            }                    } catch (DocumentException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }                        return employees;    }        /**     * 将一个雇员链表写入XML文档     * @param employees     * @param fileName     */    public void writerToFile(List<Employee> employees,String fileName){        // 创建文档对象        Document document = DocumentHelper.createDocument();        // 创建根节点        Element root = document.addElement("employees");                for(Employee emp:employees){            // 创建employee节点            Element empElm = root.addElement("employee");                        // 创建employee节点的id属性            empElm.addAttribute("id", String.valueOf(emp.getId()));                        // 创建employee节点的子节点name            Element nameElm = empElm.addElement("name");            nameElm.setText(emp.getName());// 设置子节点的文字                        // 创建employee节点的子节点ismale                        Element ismaleElm = empElm.addElement("ismale");            ismaleElm.setText(String.valueOf(emp.isMale()));// 设置子节点的文字        }                // 将document文档对象写入文件        XMLWriter writer;        try {            writer = new XMLWriter(new FileWriter(fileName));            writer.write(document);            writer.close();                        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }           }        public static void main(String[] args){    List<Employee> employees=new ArrayList<Employee>();        /*employees.add(new Employee(1,"Andy",true));        employees.add(new Employee(2,"Bill",false));        employees.add(new Employee(3,"Cindy",true));        employees.add(new Employee(4,"Doutglas",false));                XmlReaderWriter xmlReaderWriter=new XmlReaderWriter();        xmlReaderWriter.writerToFile(employees, "Employees20140724.xml");*/                XmlReaderWriter xmlReaderWriter=new XmlReaderWriter();        List<Employee> employee=xmlReaderWriter.readXml("Employees20140724.xml");        employee=null;            }}
public class Employee{    private long id;    private String name;    private boolean isMale;        public Employee(){            }        public Employee(long id,String name,boolean isMale){        this.id=id;        this.name=name;        this.isMale=isMale;    }        public long getId() {        return id;    }    public void setId(long id) {        this.id = id;    }    public boolean isMale() {        return isMale;    }    public void setMale(boolean isMale) {        this.isMale = isMale;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}

这个的主要目的是让学生掌握如何导入第三方包。