package com.logic.demo;
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.Node;
import org.w3c.dom.NodeList;
public class TestDemo {
public static void main(String[] ages) throws Exception{
//创建解析器工厂对象
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//由这个解析器工厂对象 创建 相应的解析器对象
DocumentBuilder builder = dbf.newDocumentBuilder();
//由这个解析器 去解析某个具体的XML文件
Document document = builder.parse("students.xml");
List<Student> students = new ArrayList<Student>();
NodeList list = document.getElementsByTagName("student");
for(int i=0;i<list.getLength();i++){
Student student = new Student();
Node node = list.item(i);
//getAttributes 获取某个节点的全部属性并组成了集合
//getNamedItem 获取当前属性集合中的 某个具体属性
//getNodeValue 获取某个具体属性的 属性值
String id = node.getAttributes().getNamedItem("id").getNodeValue();
student.setId(id);
//获取每个student元素下的全部子元素
NodeList list2 = node.getChildNodes();
//遍历全部子元素,找到子元素为name 和age 的进行下一步处理
//equals 比较两个字符串值是否相等
for(int j=0;j<list2.getLength();j++){
Node node2 = list2.item(j);
if("name".equals(node2.getNodeName())){
String name = node2.getFirstChild().getNodeValue();
student.setName(name);
}
if("age".equals(node2.getNodeName())){
String age = node2.getFirstChild().getNodeValue();
student.setAge(Integer.parseInt(age));
}
}
students.add(student);
}
for(int i=0;i<students.size();i++){
System.out.println(students.get(i));
}
}
}
标准DOM解析
最新推荐文章于 2024-04-09 17:00:00 发布