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