使用DOM解析XML文档
简单介绍一下使用DOM解析XML文档,解析XML文件案例:
<?xml version="1.0" encoding="UTF-8"?> -<pet> -<dog id="1"> <姓名>小白</姓名> <健康值>100</健康值> <亲密度>0</亲密度> <年龄>1岁</年龄> </dog> -<dog id="2"> <姓名>黄鼠狼</姓名> <健康值>30</健康值> <亲密度>90</亲密度> <年龄>5岁</年龄> </dog> -<dog id="3"> <姓名>小东</姓名> <健康值>90</健康值> <亲密度>10</亲密度> <年龄>3岁</年龄> </dog> </pet>
使用DOM解析XML文档
import java.io.IOException; import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException; /**
* 使用DOM解析XML文档
* @author Administrator
*
*/
public class DomReadXML { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub //========使用DOM解析XML
//第一步:建立DOM解析工厂对象实例
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try {
//第二步:从DOM解析工厂中获取解析器
DocumentBuilder db = dbf.newDocumentBuilder(); //第三步:解析XML文件;载入XML文件得到Document即DOM树
Document dom = db.parse("file:///D:/Desktop/chapter14/教学演示案例/示例3:使用内部DTD文件/pet2.xml"); //得到所有狗狗节点信息
NodeList nl = dom.getElementsByTagName("dog");
System.out.println(nl.getLength());
//循环取出信息
for (int i = 0; i < nl.getLength(); i++) { //得到每只狗狗节点
Node dog = nl.item(i); //得到狗狗的属性(即ID)
Element el = (Element)dog;
String id = el.getAttribute("id");
System.out.println("ID:"+id); //获取狗狗的子节点信息
for(Node dog_child = dog.getFirstChild();dog_child!=null;dog_child = dog_child.getNextSibling()){ //为了防止打印空格(即#text);需要判断当前对象为Node节点对象
if(dog_child.getNodeType() == Node.ELEMENT_NODE){
String name = dog_child.getNodeName();
String value = dog_child.getFirstChild().getNodeValue();
System.out.println(name+":"+value);
}
} } } catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }
使用DOM解析XML文档的更多相关文章
- 精讲 org.w3c.dom(java dom)解析XML文档
org.w3c.dom(java dom)解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会 ...
- org.w3c.dom(java dom)解析XML文档
位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会不理想 首先来了解点Java DOM 的 API:1.解析 ...
- Dom解析XMl文档
XMl文档 <?xml version = "1.0" encoding = "UTF-8"?> <books> <book bo ...
- Java中Dom解析xml文档
xml文档 <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id ...
- java解析xml文档(dom)
DOM解析XML文档 读取本地的xml文件,通过DOM进行解析,DOM解析的特点就是把整个xml文件装载入内存中,形成一颗DOM树形结构,树结构是方便遍历和和操纵. DOM解析的特性就是读取xml文件 ...
- DOM生成XML文档与解析XML文档(JUNIT测试)
package cn.liuning.test; import java.io.File; import java.io.IOException; import javax.xml.parsers.D ...
- Java解析XML文档(简单实例)——dom解析xml
一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object ...
- Java高级特性 第13节 解析XML文档(1) - DOM和XPath技术
一.使用DOM解析XML文档 DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树 ...
- JAVA读取XML,JAVA读取XML文档,JAVA解析XML文档,JAVA与XML,XML文档解析(Document Object Model, DOM)
使用Document Object Model, DOM解析XML文档 也可参考我的新浪博客:http://blog.sina.com.cn/s/blog_43ac5543010190w3.html ...
随机推荐
- 8.1.1 Connection 对象
Connect是sqllite3模块中最基本的也是最重要的一个类,其主要方法如下表所示: 方法 说明 execute(sql[,parameters]) 执行一条SQL语句 executemany(s ...
- java后台处理解析json字符串的两种方式
简单说一下背景 上次后端通过模拟http请求百度地图接口,得到的是一个json字符串,而我只需要其中的某个key对应的value. 当时我是通过截取字符串取的,后来觉得不太合理,今天整理出了两种处理解 ...
- POJ 1821 Fence
Fence Time Limit: 1000ms Memory Limit: 30000KB This problem will be judged on PKU. Original ID: 1821 ...
- Spring MVC-视图解析器(View Resolverr)-资源包视图解析器(Resource Bundle View Resolver)示例(转载实践)
以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_resourcebundleviewresolver.htm 说明:示例基于Spr ...
- 小胖说事14--------IOS字体大小,字号的问题 PX转化为UIFont
PX和Font之间相互转换公示表: 计算公式为:font=(像素PX)/(96/72).
- 迅为4412开发板Linux驱动教程/硬件知识及原理图的使用
视频教程下载地址:http://pan.baidu.com/s/1pJwxUfL 嵌入式研发流程介绍 • PCB研发流程介绍 – 方案,原理图(网表) – layoutproject师(gerber文 ...
- eclipse添加插件、删除插件 示例: eclipse marketplace
在有些版本的eclips上并没有eclipse marketplace ,这让eclipse添加插件变得比较玛法,传统的办法都是通过自行下载插件或者用 help->install new sof ...
- Codeforces Round #257 (Div. 2/B)/Codeforces450B_Jzzhu and Sequences
B解题报告 算是规律题吧,,,x y z -x -y -z 注意的是假设数是小于0,要先对负数求模再加模再求模,不能直接加mod,可能还是负数 给我的戳代码跪了,,. #include <ios ...
- Pointcut is not well-formed: expecting 'name pattern' at character position 36
- 3n+1问题
#include <stdio.h> #include <math.h> // 算法竞赛的目标是编程对任意输入均得到正确的结果. // 请先独立完成,如果有困难可以翻阅本书代码 ...