/*** 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节点的子节点nameElement 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;}
}

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

本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/xiandedanteng/p/3867513.html,如需转载请自行联系原作者

爪哇国新游记之十三----XML文件读写相关推荐

  1. 爪哇国新游记之三十三----目录文件操作

    1.判断路径是文件还是目录 File subDir=new File("c:\\mp3"); if(subDir.isDirectory()){// 是目录 }File mp3=n ...

  2. 爪哇国新游记之二十八----从url指定的地址下载文件到本地

    package download;import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; i ...

  3. 爪哇国新游记之八----读写文件及数组排序

    动态数组排序: List<Integer> ls=new ArrayList<Integer>();ls.add(-1);ls.add(11);ls.add(100);ls.a ...

  4. 爪哇国新游记之二十九----访问URL获取输入流

    代码: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import ...

  5. 爪哇国新游记之三十二----邮件发送

    由三个类完成任务,第一个为主,main中是用法示例. 纯邮件发送和带附件发送邮件皆可,大家请参照main函数中用法. package com.ufo.util.mail;import java.uti ...

  6. 爪哇国新游记之三----自创动态数组类

    package array;public class DArray{private int[] arr;private int currCount;private static final int I ...

  7. 爪哇国新游记之十五----泛型动态数组类

    import java.lang.reflect.Array;/*** 泛型动态数组类**/ public class DynamicArray<T extends Object>{pri ...

  8. 爪哇国新游记之三十----十九个正则表达式示例

    1.重复次数匹配 代码: String[] dataArr = { "moon", "mon", "moon", "mono&qu ...

  9. 爪哇国新游记之三十一----日期时间与字符串间的转化

    1.由日期时间转化成字符串 Date date = new Date(); Format formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm ...

最新文章

  1. sonar 服务器搭建 遇到各种问题
  2. table 合并列_Table.Group相邻的两个数合并案例
  3. android 如何extends 多个,Android多线程:继承Thread类 使用解析(含实例教程)
  4. linux 修改 java 内存_Linux 和 Windows修改Java虚拟机内存大小
  5. vscode控制字符引起的问题以及解决思路
  6. php memcached 例子,php下Memcached入门实例解析
  7. Cerebro 插件之电影磁力搜索神器
  8. Microsoft.Web.RedisSessionStateProvider 运行异常问题
  9. django2.0实现数据详情页展示的流程
  10. Qt总结之九:QMap中嵌套QList
  11. python3-day2(基本回顾)
  12. 纯c++实现之滚动窗口
  13. 无锁循环缓冲区的实现c语言,C++ 无锁环形缓冲区实现
  14. 条码打印软件如何实现二维码内容换行显示
  15. Linux 使用xmodmap禁用键盘按键(禁用Linux快捷键)
  16. 【软件工程导论】期末复习重点
  17. 使用mask雕刻镂空背景
  18. 百度的镜像网站,有意思…………
  19. springCloud学习【4】之elasticsearch(1)
  20. 【uniapp】小程序云开发更新、删除云数据库数据

热门文章

  1. win10怎么开启aptx_Soomal作品 - Windows与OSX 操作系统对aptX支持的验证测试报告 [Soomal]...
  2. 买了腾讯云服务器怎么ping,腾讯云服务器如何禁止Ping的功能
  3. ARM920T内核工作模式
  4. 【科学有故事】做节目时的Python分析
  5. paperswithcode使用方法
  6. 【文献查找神器】Connected Papers
  7. 2022-2028年中国数位板行业发展现状调查及市场分析预测报告
  8. 十年BAT架构履历,铁柱磨针成188页Java核心知识点
  9. CMake windows下代理设置
  10. FlutterWeb性能优化探索与实践