爪哇国新游记之十三----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; } }
这个的主要目的是让学生掌握如何导入第三方包。
爪哇国新游记之十三----XML文件读写的更多相关文章
- 爪哇国新游记之二十八----从url指定的地址下载文件到本地
package download; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; ...
- 爪哇国新游记之三十四----Dom4j的XPath操作
Dom4j是Java访问XML的利器之一,另一个是JDom.记得当年因为粗掌握点JDomAPI但项目要求使用Dom4j还闹一阵情绪,现在看来真是没必要,只花一些时间成本就进去一个新世界绝对是值得做的一 ...
- 爪哇国新游记之二十九----访问URL获取输入流
代码: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import ...
- 爪哇国新游记之十四----初试JDBC
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...
- 爪哇国新游记之七----使用ArrayList统计水果出现次数
之前学习制作了DArray,了解ArrayList就容易了. /** * 用于存储水果名及数量 * */ public class Fruit{ private String name; public ...
- 爪哇国新游记之二----用于计算三角形面积的Point类和TAngle类
这次尝试用两个类完成一个面积计算任务: Point类代表平面上的点: public class Point { private float x; private float y; public Poi ...
- 爪哇国新游记之一----第一个类Cube
将这个类作为Java学习的第一个类,简单易懂易上手. /** * 正方体类 */ public class Cube { private int length;// 正方体边长 private sta ...
- 爪哇国新游记之二十二----排序判断重复时间复杂度为2n的位图法
import java.util.ArrayList; import java.util.List; /** * 位图法 * 用于整型数组判重复,得到无重复列表 * */ public class B ...
- 爪哇国新游记之十九----使用Stack检查数字表达式中括号的匹配性
/** * 辅助类 * 用于记载字符和位置 * */ class CharPos{ char c; int pos; public CharPos(char c,int pos){ this.c=c; ...
随机推荐
- 【剑指offer】面试题 64. 求 1+2+3+...+n
面试题 64. 求 1+2+3+...+n 题目:求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 1.采 ...
- shell 指定行插入
#如果知道行号可以用下面的方法 sed -i '88 r b.file' a.file #在a.txt的第88行插入文件b.txt awk '1;NR==88{system("cat ...
- grunt-contrib-qunit安装过程中phantomjs安装报错问题解决
今天自己fork了一个github上别人写的一个关于grunt项目的一个小demo(https://github.com/cowboy/jquery-tiny-pubsub),主要是想学习下grunt ...
- 解决PHPExcel列超过26的问题
$column = PHPExcel_Cell::stringFromColumnIndex(index);//index对应的就是列,从0开始 $objPHPExcel->getActiveS ...
- hdu 5961 传递 (2016ccpc 合肥站 A题)
传递 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submiss ...
- 【树形dp】Rebuilding Roads
[POJ1947]Rebuilding Roads Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 11934 Accep ...
- [LOJ6179]Pyh的求和
首先有一个等式是$\varphi(ab)=\frac{\varphi(a)\varphi(b)d}{\varphi(d)}$,其中$d=(a,b)$,这个比较好证,直接按展开式计算可得$\varphi ...
- [Luogu1462]通往奥格瑞玛的道路
题目大意: 一个n个点,m条边的图,每个边有一个边权,每个点也有一个点权. 现在要找一条从1到n的路径,保证边权和不超过b的情况下,最大点权尽量小. 问最大点权最小能是多少? 思路: 二分答案,然后D ...
- Java编程思想学习(三)----第三章:操作符
3.2使用Java操作符 操作符接受一个或多个参数,并生成一个新值. 操作符作用于操作数,生成一个新值.有些操作符可以改变操作数自身的值.几乎所以的操作符都只能操作“基本类型”.例外的操作符有“=”, ...
- Erlang学习记录(二)——基本数据类型
Erlang可以说和我以前接触过的语言都大不相同,这个从它的类型定义就可以看出来...反正学起来觉得既不熟悉,也不亲切,我估计在用Erlang写应用的时候,整个编程思路都要变一下了.不过存在即是合理的 ...