一、DOM方式
原始name.xml
<?xml version="1.0" encoding="GB2312" standalone="no"?><学生花名册>
<学生 性别="男">
<姓名>李华</姓名>
<年龄>14</年龄>
</学生>
<学生 性别="男">
<姓名>张三</姓名>
<年龄>16</年龄>
</学生>
<学生 性别="女">
<姓名>王娟</姓名>
<年龄>18</年龄>
</学生>
</学生花名册>
数据模型Student.java
package com.upcgrid.dom;
public class Student {
private String name;
private String sex;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
DOM方式解析xml文档示例程序
package com.upcgrid.dom;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Vector;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.SAXException;
/**
*
* @author shijin 原始DOM解析XML方式
*
*/
public class DOMTest {
public static void main(String[] args) throws ParserConfigurationException,
SAXException, IOException, TransformerException {
DOMTest test = new DOMTest();
test.deleteElement("name.xml", "女");
Vector<Student> stus = test.changeXMLToModel("name.xml");
for (Student stu : stus) {
System.out.print(stu.getName() + " " + stu.getSex() + " "
+ stu.getAge() + "\n");
}
// 输出:
// 李华 男 14
// 张三 男 16
test.createDocument("name2.xml", stus);
}
/**
* show 根据vector中的student对象创建xml文档
*
* @param filename
* 要创建的文档名
* @throws ParserConfigurationException
* @throws SAXException
* @throws IOException
* @throws TransformerException
*/
public void createDocument(String filename, Vector<Student> stus)
throws ParserConfigurationException, SAXException, IOException,
TransformerException {
// 得到DOM解析器的工厂实例
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
// 从DOM工厂获取DOM解析器
DocumentBuilder builder = dbf.newDocumentBuilder();
// 创建document对象
Document doc = builder.newDocument