注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

dige1993

网页设计 | js、h5开发 | java web开发 | 数据库

 
 
 

日志

 
 
关于我

网页设计,js、h5开发,java web开发,数据库

网易考拉推荐

Java Web开发笔记(5)之 DOM解析XML示例  

2014-08-31 21:09:23|  分类: Java Web |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
DOM解析XML的步骤:

1.获取xml文件:File xmlFile = new File("students.xml");

2.获取DocumentBuilderFactory对象:
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();

3.从DocumentBuilderFactory对象获取DocumentBuilder对象:
DocumentBuilder builder = builderFactory.newDocumentBuilder();

4.利用DocumentBuilder对象解析xml文件,得到Document对象:
Document document = builder.parse(xmlFile);

5.利用得到的Document对象遍历所有节点。

下面给出一个例子:
待解析的xml文件students.xml代码:

<?xml version="1.0" encoding="UTF-8"?>

<students>

<student id="1">

<_name>奕一</_name>

<age>12</age>

<sex>1</sex>

<birthday>1992-10-10</birthday>

</student>

<student id="2">

<_name>莫儿</_name>

<age>13</age>

<sex>0</sex>

<birthday>1991-01-23</birthday>

</student>

</students>


解析XML文件的XmlDom.java:

import java.io.File;
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 XmlDom {

public static void main(String[] args) {
// TODO Auto-generated method stub

File xmlFile = new File("students.xml");// 获取xml文件
DocumentBuilderFactory builderFactory = DocumentBuilderFactory
.newInstance();// 获取DocumentBuilderFactory对象
try {
DocumentBuilder builder = builderFactory.newDocumentBuilder();// 从DocumentBuilderFactory对象获取DocumentBuilder对象
Document document = builder.parse(xmlFile);// 利用DocumentBuilder对象解析xml文件,解析结果为Document

Element root = document.getDocumentElement();// 获取根元素
System.out.println("根元素:" + root.getNodeName());// 输出根元素名称

NodeList childNodes = root.getChildNodes();// 获取根元素的所有子节点
// 遍历根元素的所有子节点
for (int i = 0; i < childNodes.getLength(); i++) {
Node node = childNodes.item(i);
if ("student".equals(node.getNodeName())) {
System.out.println("学生"
+ node.getAttributes().getNamedItem("id")
.getNodeValue());// 输出子节点的id属性
NodeList details = node.getChildNodes();// 获取每个子节点的所有子节点
// 遍历子节点
for (int j = 0; j < details.getLength(); j++) {
Node detail = details.item(j);
switch (detail.getNodeName()) {
case "_name":
System.out.println("姓名:" + detail.getTextContent());
break;
case "age":
System.out.println("年龄:" + detail.getTextContent());
break;
case "sex":
System.out.println("性别:" + detail.getTextContent());
break;
case "birthday":
System.out.println("生日:" + detail.getTextContent());
break;
}
}
System.out.println();
}
}
} catch (Exception e) {
// TODO: handle exception
}
}
}


下面给出示例的下载链接:http://pan.baidu.com/s/1hqCDFjm

  评论这张
 
阅读(64)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018