[size=xx-large]xml解析---DOM[/size]
工程结构图:
[img]
[img]http://dl.iteye.com/upload/attachment/0066/4490/dd6419e5-3d68-3c35-8508-dc3931520259.jpg[/img]
[/img]
效果图:
[img]
[img]http://dl.iteye.com/upload/attachment/0066/4496/57e1941c-99d1-310e-86aa-14a2a7ba6cd4.jpg[/img]
[/img]
一、stu.xml
布局文件放在src下,而不是com.amaker.dom包下
二、Student类:
三、解析类 Test:
工程结构图:
[img]
[img]http://dl.iteye.com/upload/attachment/0066/4490/dd6419e5-3d68-3c35-8508-dc3931520259.jpg[/img]
[/img]
效果图:
[img]
[img]http://dl.iteye.com/upload/attachment/0066/4496/57e1941c-99d1-310e-86aa-14a2a7ba6cd4.jpg[/img]
[/img]
一、stu.xml
<?xml version="1.0" encoding="utf-8"?>
<students>
<student id="1">
<name>tom</name>
<age>20</age>
</student>
<student id="2">
<name>kite</name>
<age>21</age>
</student>
<student id="3">
<name>rose</name>
<age>22</age>
</student>
</students>
布局文件放在src下,而不是com.amaker.dom包下
二、Student类:
package com.amaker.dom;
public class Student {
private int id;
private int age;
private String name;
/**
* 无参构造方法
*/
public Student() {
super();
}
/**
* 带参构造方法
*/
public Student(int id, int age, String name) {
super();
this.id = id;
this.age = age;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student [age=" + age + ", id=" + id + ", name=" + name + "]";
}
}
三、解析类 Test:
package com.amaker.dom;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class Test {
/**
* zzl
*/
public static void main(String[] args) {
List<Student> list = readXML();
for (Student s : list) {
System.out.println(s);
}
}
public static List<Student> readXML() {
InputStream in = new Test().getClass().getClassLoader()
.getResourceAsStream("stu.xml");
List<Student> stulist = new ArrayList<Student>();
Student currentStudent;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
Document dom = builder.parse(in);
Element root = dom.getDocumentElement();
// 查找所有的student节点
NodeList items = root.getElementsByTagName("student");
for (int i = 0; i < items.getLength(); i++) {
currentStudent = new Student();
Element stuElement = (Element) items.item(i);
int id = Integer.parseInt(stuElement.getAttribute("id"));
currentStudent.setId(id);
NodeList stuNode = stuElement.getChildNodes();
for (int j = 0; j < stuNode.getLength(); j++) {
Node node = stuNode.item(j);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element eNode = (Element) node;
String data = eNode.getFirstChild().getNodeValue();
if (eNode.getTagName().equals("name")) {
currentStudent.setName(data);
}
if (eNode.getTagName().equals("age")) {
currentStudent.setId(Integer.parseInt(data));
}
}
}
stulist.add(currentStudent);
}
} catch (Exception e) {
e.printStackTrace();
}
return stulist;
}
}