xml解析-DOM
xml解析--DOM
xml解析---DOM
工程结构图:
[img]
[/img]
效果图:
[img]
[/img]
一、stu.xml
布局文件放在src下,而不是com.amaker.dom包下
二、Student类:
三、解析类 Test:
xml解析---DOM
工程结构图:
[img]
[/img]
效果图:
[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; } }