Java中Dom解析XML
DOM将整个XML文件加载到内存中,并构建出节点树;应用程序可以通过遍历节点树的方式来解析XML文件中的各个节点、属性等信息;
这种方式便于对XML节点的添加修改等,而且解析也很方便,然后它比较耗费内存,解析速度也不快
sax解析: http://www.cnblogs.com/gavinYang/p/3505543.html
dom4j解析: http://www.cnblogs.com/gavinYang/p/3505535.html
jdom解析: http://www.cnblogs.com/gavinYang/p/3505530.html
Java代码:
1 package com.test; 2 3 import java.io.File; 4 import java.util.ArrayList; 5 import java.util.List; 6 import javax.xml.parsers.DocumentBuilder; 7 import javax.xml.parsers.DocumentBuilderFactory; 8 import org.w3c.dom.Document; 9 import org.w3c.dom.Element; 10 import org.w3c.dom.Node; 11 import org.w3c.dom.NodeList; 12 13 public class DomXML { 14 15 public static void main(String[] args) { 16 try { 17 File file = new File("e:/People.xml"); 18 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 19 DocumentBuilder builder = factory.newDocumentBuilder(); 20 Document document = builder.parse(file); 21 Element element = document.getDocumentElement(); 22 23 List<People> peopleList = new ArrayList<People>(); 24 NodeList peopleNodes = element.getElementsByTagName("People"); 25 for(int i=0;i<peopleNodes.getLength();i++){ 26 People people = new People(); 27 Element peopleElement = (Element) peopleNodes.item(i); 28 people.setId(peopleElement.getAttribute("id")); 29 NodeList childPeopleNodes = peopleElement.getChildNodes(); 30 for(int j=0;j<childPeopleNodes.getLength();j++){ 31 //DOM解析时候注意子节点前面的空格也会被解析 32 if(childPeopleNodes.item(j) instanceof Element){ 33 Element childPeopleElement = (Element) childPeopleNodes.item(j); 34 if(childPeopleElement.getNodeType()==Node.ELEMENT_NODE){ 35 if(childPeopleElement.getNodeName().equals("Name")){ 36 people.setEnglishName(childPeopleElement.getAttribute("en")); 37 people.setName(childPeopleElement.getTextContent()); 38 } 39 else if(childPeopleElement.getNodeName().equals("Age")){ 40 people.setAge(childPeopleElement.getTextContent()); 41 } 42 } 43 } 44 } 45 peopleList.add(people); 46 } 47 48 for(People people : peopleList){ 49 System.out.println(people.getId()+"\t"+people.getName()+"\t"+people.getEnglishName()+"\t"+people.getAge()); 50 } 51 52 } catch (Exception e) { 53 // TODO 自动生成的 catch 块 54 e.printStackTrace(); 55 } 56 57 58 } 59 }
People对象:
1 package com.test; 2 3 public class People { 4 private String id; 5 private String name; 6 private String englishName; 7 private String age; 8 public String getId() { 9 return id; 10 } 11 public void setId(String id) { 12 this.id = id; 13 } 14 public String getName() { 15 return name; 16 } 17 public void setName(String name) { 18 this.name = name; 19 } 20 public String getEnglishName() { 21 return englishName; 22 } 23 public void setEnglishName(String englishName) { 24 this.englishName = englishName; 25 } 26 public String getAge() { 27 return age; 28 } 29 public void setAge(String age) { 30 this.age = age; 31 } 32 33 }
xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <PeopleList> 3 <People id="1"> 4 <Name en='zhangsan'>张三</Name> 5 <Age>20</Age> 6 </People> 7 <People id="2"> 8 <Name en='lisi'>李四</Name> 9 <Age>30</Age> 10 </People> 11 </PeopleList>
转载于:https://www.cnblogs.com/gavinYang/p/3505523.html
Java中Dom解析XML相关推荐
- java中DOM解析xml文件
本文介绍了如何利用DOM(即Document Object Model文档对象模型)解析xml文件. 首先有一个xml文件: <?xml version=\"1.0\" en ...
- java dom_Java DOM 解析 XML详解
W3C制定了一套书写XML分析器的标准接口规范--DOM. 除此以外,XML_DEV邮件列表中的成员根据应用的需求也自发地定义了一套对XML文档进行操作的接口规范--SAX. 这两种接口规范各有侧重, ...
- Java中DOM4J解析xml文件浅析
DOM4J解析它是JDOM的一种智能分支.它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持.XML Schema支持以及用于大文档或流化文档的基于事件的处理.它还提供了构建文档表 ...
- 在java中在线解析XML文件内容
这里的天气属性有很多,可以根据自己的需求获取天气属性 这里用到了org.json的jar包,因为要使用XML属性解析数据,还有alibab.JAONObject的jar包 /*** 天气预报-更新* ...
- Java之XML解析-使用dom(org.w3c.dom)解析XML
转自: Java之XML解析-使用dom(org.w3c.dom)解析XML 下文笔者将讲述使用W3C(org.w3c.dom)提供的接口,解析XML文档的方法分享 W3C解析xml文档的方法:将整个 ...
- Android程序解析xml至文档中,Android开发之DOM解析xml文件的方法
本文实例讲述了Android中DOM解析xml文件的方法.分享给大家供大家参考,具体如下: 一.在assets文件中写xml文件 李明 30 李向梅 25 二.在service中写一个DOM解析的操作 ...
- java解析xml实例_在java中使用dom解析xml的示例分析
本篇文章介绍了,在java中使用dom解析xml的示例分析.需要的朋友参考下 dom是个功能强大的解析工具,适用于小文档 为什么这么说呢?因为它会把整篇xml文档装载进内存中,形成一颗文档对象树 总之 ...
- JAVA中利用DOM解析XML文档
JAVA中利用DOM解析XML文档 package org.sws.utils; import java.io.File;import java.io.IOException; import java ...
- java中document解析jsp,JSP基于dom解析xml实例详解
本文实例讲述了JSP基于dom解析xml的方法.分享给大家供大家参考,具体如下: 初次学习用dom操作xml文件,有很多不足之处,牛人多给点建议,练习时我没对中文做乱码处理,也没做验证哦!O(∩_∩) ...
最新文章
- 我应该如何道德地接近用户密码存储以便以后的明文检索?
- 第7部分 组策略应用
- python【蓝桥杯vip练习题库】ALGO-189 P0505(阶乘问题)
- hdu 5045 费用流
- 三种css样式表及其优先级
- python中循环结构关键字_Python的循环结构,也简单!
- 数据结构与算法(C语言) | 栈和队列——栈(自己做过测试)
- 数据科学家数据分析师_站出来! 分析人员,数据科学家和其他所有人的领导和沟通技巧...
- 免费json客户端解析
- 详细讲解C++ 类的继承
- [安卓学习]AndroidManifest.xml文件内容详解
- 自学Python Day1
- 22-微信小程序商城 我的订单(微信小程序商城开发、小程序毕业设计、小程序源代码)(黄菊华-微信小程序开发教程)
- 宋宝华:关于Ftrace的一个完整案例
- macbook更新系统服务器,苹果电脑如何升级系统_苹果电脑怎么更新版本-win7之家...
- JMeter 请求报Response code:415错误
- 浙江大学14届计算机学院孙晓宇,郑州外国语学校2011年保送生录取名单
- 矩和质心之积分的应用
- win10右键卡顿原因_win10系统点击鼠标右键出现卡顿的解决方法
- 4线电子围栏安装示意图_电子围栏系统安装教程(图文)
热门文章
- php创建类用什么关键字,PHP面向对象开发之类的常用关键字
- 在php中单引号和双引号的区别错误的是___________,浅谈PHP中单引号和双引号到底有啥区别呢?...
- 008_Spring Data JPA原生SQL
- 网页中嵌套网页flush_如何修改网页中的内容?
- php函数有哪三种,【后端开发】php函数可以分为哪三种
- igmpproxy_Linux IGMP PROXY 学习笔记 之二 igmp proxy的处理流程分析
- php base64_decode 图片,PHP保存Base64图片base64_decode的问题整理
- cassandra本地连接失败_本地网络发现失败的解决方法连接到OS X中的服务器的问题 | MOS86...
- 生鲜配送小程序源码_生鲜配送小程序开发
- java判断星期天_java实现一个月的最后一个星期天