http://www.verejava.com/?id=16995016619232
下载依赖 jar 包
dom4j-1.6.1.jar
jaxen-1.1-beta-6.jar
package com.xml;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import com.entity.Student;
public class TestTextXml
{
/**
* 遍历
* @param args
*/
public static void testReader()
{
SAXReader reader=new SAXReader();
try
{
Document doc=reader.read(new File("student2.xml"));
List<Element> elementList=doc.selectNodes("/data/student");
for(Element element:elementList)
{
Iterator<Element> childIter=element.elementIterator();
while(childIter.hasNext())
{
Element childElement=childIter.next();
System.out.println(childElement.getName()+"="+childElement.getText());
}
}
} catch (DocumentException e)
{
e.printStackTrace();
}
}
/**
* 遍历
* @param args
*/
public static List<Student> testReader2()
{
List<Student> studentList=new ArrayList<Student>();
SAXReader reader=new SAXReader();
try
{
Document doc=reader.read(new File("student2.xml"));
List<Element> elementList=doc.selectNodes("/data/student");
for(Element element:elementList)
{
Iterator<Element> childIter=element.elementIterator();
Student student=null;
while(childIter.hasNext())
{
if(student==null)
{
student=new Student();
}
Element childElement=childIter.next();
String tag=childElement.getName();
if("name".equals(tag))
{
student.setName(childElement.getText());
}else if("age".equals(tag))
{
student.setAge(Integer.parseInt(childElement.getText()));
}
}
if(student!=null)
{
studentList.add(student);
student=null;
}
}
} catch (DocumentException e)
{
e.printStackTrace();
}
return studentList;
}
/**
* 添加
* @param args
*/
public static void testAdd()
{
SAXReader reader=new SAXReader();
XMLWriter writer=null;
try
{
Document doc=reader.read(new File("student2.xml"));
Element root=doc.getRootElement();
Element studentElement=root.addElement("student");
Element nameElement=studentElement.addElement("name");
nameElement.setText("王涛");
Element ageElement=studentElement.addElement("age");
ageElement.setText("26");
OutputFormat format=OutputFormat.createPrettyPrint();
writer=new XMLWriter(new FileWriter("student2.xml"),format);
writer.write(doc);
writer.flush();
} catch (DocumentException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
writer.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
/**
* 修改
* @param args
*/
public static void testUpdate(Student item)
{
SAXReader reader=new SAXReader();
XMLWriter writer=null;
try
{
Document doc=reader.read(new File("student2.xml"));
List<Element> elementList=doc.selectNodes("/data/student");
for(Element element:elementList)
{
Iterator<Element> childIter=element.elementIterator();
boolean isUpdate=false;
while(childIter.hasNext())
{
Element childElement=childIter.next();
String tag=childElement.getName();
if("name".equals(tag)&&item.getName().equals(childElement.getText()))
{
isUpdate=true;
}
if(isUpdate)
{
if("age".equals(tag))
{
childElement.setText(String.valueOf(item.getAge()));
}
}
}
if(isUpdate)
{
isUpdate=false;
break;
}
}
OutputFormat format=OutputFormat.createPrettyPrint();
writer=new XMLWriter(new FileWriter("student2.xml"),format);
writer.write(doc);
writer.flush();
} catch (DocumentException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
writer.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
/**
* 删除
* @param args
*/
public static void testDelete(String name)
{
SAXReader reader=new SAXReader();
XMLWriter writer=null;
try
{
Document doc=reader.read(new File("student2.xml"));
List<Element> elementList=doc.selectNodes("/data/student");
for(Element element:elementList)
{
Iterator<Element> childIter=element.elementIterator();
while(childIter.hasNext())
{
Element childElement=childIter.next();
String tag=childElement.getName();
if("name".equals(tag)&&name.equals(childElement.getText()))
{
element.getParent().remove(element);
}
}
}
OutputFormat format=OutputFormat.createPrettyPrint();
writer=new XMLWriter(new FileWriter("student2.xml"),format);
writer.write(doc);
writer.flush();
} catch (DocumentException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
writer.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
/**
* 将数据库数据 转换成 xml 文件
* @param args
*/
public static void testGenerateXML(List<Student> studentList)
{
Writer writer=null;
try
{
writer=new FileWriter("student3.xml");
StringBuilder sb=new StringBuilder();
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
sb.append("<data>\n");
for(Student student:studentList)
{
sb.append(" <student>\n");
sb.append(" <name>"+student.getName()+"</name>\n");
sb.append(" <age>"+student.getAge()+"</age>\n");
sb.append(" </student>\n");
}
sb.append("</data>");
writer.write(sb.toString());
} catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
writer.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
//testAdd();
//testUpdate(new Student("李军",29));
testDelete("王涛");
List<Student> studentList=testReader2();
for(Student student:studentList)
{
System.out.println(student.getName()+","+student.getAge());
}
testGenerateXML(studentList);
}
}
package com.entity;
public class Student
{
private String name;
private int age;
private int money;
private String address;
private Course course;
public Student()
{
super();
System.out.println("student");
}
public Student(String name, int age)
{
super();
this.name = name;
this.age = age;
System.out.println(this.name+","+this.age);
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
private String getHello()
{
return "hello";
}
}