POPTEST老李分享DOM解析XML之java
POPTEST老李分享DOM解析XML之java
Java提供了两种XML解析器:树型解释器DOM(Document Object Model,文档对象模型),和流机制解析器SAX(Simple API for XML,XML简单API)。DOM可以将XML转换为树结构。
XML文档内容如下:
文件名:NameList.xml,文件路径:C:\Users\Tsybius\Desktop\NameList.xml
<?xml version="1.0" encoding="UTF-8"?><root> <list1> <person id="101" name="Tsybius" remark="1" /> <person id="102" name="Galatea" remark="2" /> <person id="103" name="Quintus" remark="3" /> <person id="104" name="Atia" remark="4" /> <person id="105" name="Justitia" remark="5" /> </list1> <list2> <person id="201" name="Zhang" remark="a" /> <person id="202" name="Wang" remark="b" /> <person id="203" name="Li" remark="c" /> <person id="204" name="Zhao" remark="d" /> <person id="205" name="Liu" remark="e" /> </list2> <text>TEXT</text></root>package XmlDomTest;import java.io.File;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.NamedNodeMap;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.w3c.dom.Text;import org.xml.sax.SAXException;/** * 使用DOM解析XML * @author Tsybius * */public class XmlDomTest { /** * 使用DOM解析XML * @param args */ public static void main(String[] args) { try { String filePath = "C:\\Users\\Tsybius\\Desktop\\NameList.xml"; File f = new File(filePath); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(f); //遍历节点方式1 Element root = doc.getDocumentElement(); System.out.println("根节点名:" + root.getNodeName()); NodeList children = root.getChildNodes(); for (int i = 0; i < children.getLength(); i++) { Node child = children.item(i); if (child instanceof Element) { Element childElement = (Element)child; System.out.println("节点名:" + childElement.getNodeName()); if (childElement.getNodeName().equals("list1")) { //list1 //遍历节点方式2 //获取指定属性 for (Node list1Node = childElement.getFirstChild(); list1Node != null; list1Node = list1Node.getNextSibling()) { if (list1Node instanceof Element) { Element list1Element = (Element)list1Node; System.out.print("person:"); System.out.print("id=" + list1Element.getAttribute("id") + ";"); System.out.print("name=" + list1Element.getAttribute("name") + ";"); System.out.print("remark=" + list1Element.getAttribute("remark") + ";"); System.out.println(); } } } else if (childElement.getNodeName().equals("list2")) { //list2 //遍历节点方式2 //遍历所有属性 for (Node list2Node = childElement.getFirstChild(); list2Node != null; list2Node = list2Node.getNextSibling()) { if (!(list2Node instanceof Element)) { continue; } NamedNodeMap attributes = ((Element)list2Node).getAttributes(); System.out.print("person:"); for (int counter = 0; counter < attributes.getLength(); counter++) { Node attribute = attributes.item(counter); if (attribute == null) { continue; } String name = attribute.getNodeName(); String value = attribute.getNodeValue(); System.out.print(name + "=" + value + ";"); } System.out.println(); } } else if (childElement.getNodeName().equals("text")) { //text //获取文本值 Text textNode = (Text)childElement.getFirstChild(); String text = textNode.getData().trim(); System.out.println("text:" + text); } } } } 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(); } catch (Exception e) { e.printStackTrace(); } }}根节点名:root
节点名:list1
person:id=101;name=Tsybius;remark=1;
person:id=102;name=Galatea;remark=2;
person:id=103;name=Quintus;remark=3;
person:id=104;name=Atia;remark=4;
person:id=105;name=Justitia;remark=5;
节点名:list2
person:id=201;name=Zhang;remark=a;
person:id=202;name=Wang;remark=b;
person:id=203;name=Li;remark=c;
person:id=204;name=Zhao;remark=d;
person:id=205;name=Liu;remark=e;
节点名:text
text:TEXT
POPTEST老李分享DOM解析XML之java的更多相关文章
- JAVA中使用DOM解析XML文件
XML是一种方便快捷高效的数据保存传输的格式,在JSON广泛使用之前,XML是服务器和客户端之间数据传输的主要方式.因此,需要使用各种方式,解析服务器传送过来的信息,以供使用者查看. JAVA作为一种 ...
- Java从零开始学四十二(DOM解析XML)
一.DOM解析XML xml文件 favorite.xml <?xml version="1.0" encoding="UTF-8" standalone ...
- Java解析XML文档(简单实例)——dom解析xml
一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object ...
- Java解析XML文档——dom解析xml
一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object M ...
- 精讲 org.w3c.dom(java dom)解析XML文档
org.w3c.dom(java dom)解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会 ...
- 老李分享:导出xml报告到手机
老李分享:导出xml报告到手机 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821 ...
- Android之DOM解析XML
一.DOM解析方法介绍 DOM是基于树形结构的节点或信息片段的集合,允许开发人员使用DOM API遍历XML树,检索所需数据.分析该结构通常需要加载整个文档和构造树形结构,然后才可以检索和更新节点信息 ...
- 简单谈谈dom解析xml和html
前言 文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.html,xml都是基于这个模型构造的.这也是一个W3C推出的标准.j ...
- xml语法、DTD约束xml、Schema约束xml、DOM解析xml
今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...
随机推荐
- mycat
mycat系列: mycat系列-概述 Cobar的十个秘密之一 Cobar的十个秘密之二 Cobar的十个秘密之三 Cobar的十个秘密之四 Cobar的十个秘密之五 Cobar的十个秘密之六 Co ...
- JavaScript中国象棋程序(2) - 校验棋子走法
"JavaScript中国象棋程序" 这一系列教程将带你从头使用JavaScript编写一个中国象棋程序.这是教程的第2节. 这一系列共有9个部分: 0.JavaScript中国象 ...
- 《C++ Primer》读书笔记—第一章 开始
声明: 文中内容收集整理自<C++ Primer 中文版 (第5版)>,版权归原书所有. 学习一门程序设计语言最好的方法就是练习编程. 1.一个函数的定义包含四个部分:返回类型(retur ...
- 对await(),notify()的理解
await(),notify()是java Object类的方法.在两个线程同时访问一个对象的时候可以利用这2个方法实现线程的通信.看下面的例子. public class Account { pri ...
- HTML5拖放加入购物车
H5拖放事件巩固实例: 1.简单布局一下,商品信息放入一个ul中:div为购物车,后续会创建元素 <ul> <li draggable="true"> &l ...
- C++:基础篇-32位和64位系统区别及字节数
今儿面试了一个刚刚毕业的,但是不知道一个int.long.double这几个都是多少位,我给你们总结一下哈: 常用数据类型对应字节数 可用如sizeof(char),sizeof(char*)等得出 ...
- debian+nginx配置初探--php环境、反向代理和负载均衡
配置nginx的PHP环境 安装nginx sudo apt-get install nginx 安装nginx就可以通过下面地址来访问了:http://localhost/ 安装php sudo a ...
- nginx在CentOs下的安装及配置
前言: 先介绍一下nginx: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少,并发能力强, ...
- JVM 体系结构
JVM 是一种抽象的计算机,基于堆栈架构,它有自己的指令集和内存管理,是 Java 跨平台的依据,JVM解释执行字节码,或将字节码编译成本地代码执行.Java 虚拟机体系结构如下: Class Fil ...
- python3.4 安装 scrapy 报错 VS2010
安装scrapy框架报错是常见问题 还好,本人只碰到其中一个bug,以下是此次安装经验 环境 py3.4 windows7 64位 安装有VS2010 pip包管理(pycharm) 报错信息 安装l ...