DOM解析

XML解析一:DOM解析
1.创建一个工厂,注:不用NEW对象,直接调方法
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
List<Student> allStus = null;
2.创建DOM解析器
DocumentBuilder db =dbf.newDocumentBuilder();
3.XML文件加载进解析器DocumentBuilder
File myfile = new File("此处放入XML文件路劲");
if (myfile.exists()) {
FileInputStream fis=new FileInputStream(myfile);
Document dom = db.parse(fis);
4.从XML中提取数据
NodeList students = dom.getElementsByTagName("student");
System.out.println("多少个节点:"+students.getLength());
allStus = new ArrayList<Student>();
//循环遍历每一个节点获取其中存储的数据
for (int i = 0; i < students.getLength(); i++) {
Element studentNode = (Element) students.item(i);
//取得XML文件中保存的学生编号
String stuId = studentNode.getAttribute("id");
//<student><name>
NodeList names = studentNode.getElementsByTagName("name");
Element nameNode = (Element) names.item(0);
//<name>张三
Text nameText = (Text) nameNode.getFirstChild();
//获取以文本形式保存的学生姓名
String studentName = nameText.getNodeValue();


第二种方法:
NodeList ages =dom.getElementsByTagName("age");
Element ageNode = (Element) ages.item(i);

Text ageText = (Text) ageNode.getFirstChild();

String studentAge = ageText.getNodeValue();
Student stu = new Student(Integer.parseInt(stuId), studentName, Integer.parseInt(studentAge));
allStus.add(stu);
}
} else {
System.out.println("文件不存在");
}
for (Student stu : allStus) {
System.out.println("学生姓名"+stu.getStuName());
}}
最后抛个异常搞定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值