[JavaWeb基础] 030.dom4j读取xml的4种方法
通常我们在项目开发的过程中经常要操作到xml文件,在JAVA这边,我们会很自然的联想到Dom4J这个apache的开源插件,那么我们使用Dom4J如何来读取xml文件呢?下面我们来看看以下4种方法
1.第一种方法:使用dom4j 中saxreader 获取Document容器,利用此容器的elementIterator读取xml文件
public static void readXML() throws DocumentException{
	// 获取读取xml的对象。
	SAXReader sr = new SAXReader();
	// 得到xml所在位置。然后开始读取。并将数据放入doc中
	Document doc = sr.read("src/com/sinojava/EMP.xml");
	// 向外取数据,获取xml的根节点。
	Element el_root = doc.getRootElement();
	// 从根节点下依次遍历,获取根节点下所有子节点
	Iterator it = el_root.elementIterator();
	// 遍历该子节点
	while(it.hasNext()){
		// 再获取该子节点下的子节点
		Object o = it.next();
		Element el_row = (Element)o;
		String s = el_row.getText();
		Iterator it_row = el_row.elementIterator();
		// 遍历节点
		while(it_row.hasNext()){
			// 获取该节点下的所有数据。
			Element el_ename = (Element)it_row.next();
			System.out.println(el_ename.getText());
		}
	}
}
2.第二种方法:使用elements方法进行xml的读取,相当于条件查询,可以根据不同的节点,利用for循环查询该节点下所有的数据。
public static void readXML02() throws DocumentException{
	// 获取读取方式
	SAXReader sr = new SAXReader();
	// 读取xml文件,并且将数据全部存放到Document中
	Document doc = sr.read("src/com/sinojava/EMP.xml");
	// 获取根节点
	Element root = doc.getRootElement();
	// 根据根节点,将根节点下 row中的所有数据放到list容器中。
	List list = root.elements("ROW");
	// 这种遍历方式,是jdk1.5以上的版本支持的遍历方式
	for(Object obj:list){
		Element row = (Element)obj;
		// 获取ENAME节点下所有的内容,存入list_row容器中
		List list_row = row.elements("ENAME");
		for(Object objempno:list_row){
			Element el_empno = (Element)objempno;
			// 获取节点下的数据。
			System.out.println(el_empno.getName()+": "+el_empno.getText());
		}
	}
}
3. 第三种方法:使用适配器来完成xml的读取。
 public static void readXML04() throws DocumentException{
	 SAXReader sr = new SAXReader();
	 Document doc = sr.read("src/com/sinojava/EMP.xml");
	 // 使用观察器的子类,来完成对xml文件的读取。
	 doc.accept(new VisitorSupport() {
		 // 利用观察期进行xml的读取。
		 public void visit(Element el) {
			 System.out.println(el.getName()+": "+el.getText());
		 }
	 });
 }
4.第四种方法:使用selectNodes读取xml文件
public static void readXML05(String elementpath) throws DocumentException{
	SAXReader sr = new SAXReader();
	Document doc = sr.read("src/com/sinojava/EMP.xml");
	// 使用selectNodes获取所要查询xml的节点。
	List list = doc.selectNodes(elementpath);
	// 遍历节点,获取节点内数据。
	for(Object obj:list){
	   Element el = (Element)obj;
	   System.out.println(el.getText());
	}
}

本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士)
转载自【宝宝巴士SuperDo团队】原文链接: http://www.cnblogs.com/superdo/p/50080313.html
[JavaWeb基础] 030.dom4j读取xml的4种方法的更多相关文章
- [JavaWeb基础] 031.dom4j写入xml的方法
		
上一篇我们讲述了dom4j读取xml的4种方法,甚是精彩,那么怎么样写入xml呢?我们直接看下源码实现. public static void main(String[] args) throws E ...
 - C#中常用的读取xml的几种方法(转)
		
本文完全来源于http://blog.csdn.net/tiemufeng1122/article/details/6723764,仅作个人学习之用. XML文件是一种常用的文件格式,例如WinFor ...
 - 使用dom4j读取xml连接数据库与之单例模式
		
使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...
 - RSS阅读器(一)——dom4j读取xml(opml)文件
		
接触java不久,偶有收获,最近想做一个web版RSS阅读器来锻炼一下.手头有几个从不同版本的foxmail中导出的opml文件,大家应该都知道,opml文件就是xml格式的.那么就先从这里入手,练习 ...
 - 使用dom4j 读取XML文件
		
第一次接触dom4j的时候,感觉这个东西很神秘,因为之前虽然知道XML文件吧,但从来没有用过,一直感觉XML肯定不好操作.当得知,dom4j可以很容易的操作读取XML文件时,不免有些好奇,那么,用do ...
 - DOM4J读取XML文件
		
最近在做DRP的项目,其中涉及到了读取配置文件,用到了DOM4J,由于是刚开始接触这种读取xml文件的技术,好奇心是难免的,于是在网上又找了一些资料,这里就结合找到的资料来谈一下读取xml文件的4中方 ...
 - Java使用dom4j读取xml时报错:org.dom4j.DocumentException: Error on line 2 of document  : Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence
		
1.Java使用dom4j读取xml时报错: org.dom4j.DocumentException: Error on line 2 of document : Invalid byte 2 of ...
 - 【XML】利用Dom4j读取XML文档以及写入XML文档
		
Dom4j简介 dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它的性能 ...
 - 简介C#读取XML的两种方式
		
简介C#读取XML的两种方式 作者: 字体:[增加 减小] 类型:转载 时间:2013-03-03 在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,使用DOM的 ...
 
随机推荐
- poj1679 The Unique MST(最小生成树唯一性)
			
最小生成树的唯一性,部分参考了oi-wiki 如果一条不在最小生成树边集内的边,它可以替换一条在最小生成树边集内,且权值相等的边,那么最小生成树不是唯一的 同过kruskal来判断 考虑权值相等的边, ...
 - leetcode_课程表(BFS、拓扑排序)
			
题目描述: 你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 .在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹 ...
 - 测试开发专题:spring-boot自定义异常返回
			
上文测试开发专题:spring-boot统一异常捕获我们讨论了java异常以及如何使用Spring-Boot捕获异常,但是没有去说捕获异常后该如何进一步处理,这篇文章我们将对这个遗留的问题进行讨论. ...
 - Nacos系列(一):Nacos环境安装及Hello World示例
			
现在微服务架构越来越火,微服务架构中比较重要的一项就是配置中心, Nacos是阿里巴巴的一个开源项目,它的其中一个功能就是可以作为配置中心,实现配置的动态变更.历史版本对比.配置回滚等功能. 更多的描 ...
 - 字节码编程,Byte-buddy篇一《基于Byte Buddy语法创建的第一个HelloWorld》
			
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 相对于小傅哥之前编写的字节码编程: ASM.Javassist 系列,Byte Bu ...
 - STM32 TIM 多通道互补PWM波形输出配置快速入门
			
platform:stm32f10xxx lib:STM32F10x_StdPeriph_Lib_V3.5.0 前言 在做三相逆变的时候,需要软件生成SVPWM波形,具体的算法需要产生三对互补的PWM ...
 - [带符号大整数模板]vector版
			
#include <iostream> #include <cstdio> #include <vector> #include <cstring> u ...
 - ASP.NET Core on K8S学习之旅(13)Ocelot API网关接入
			
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 上一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和使 ...
 - 自动扫雷 python
			
自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式. // 2018.8.10更新 代码已上传至GitHub https://gith ...
 - Linux --remote (ssh and VNC)
			
远程管理 与个人计算机不同,服务器一般都是运行IDC机房中,所以我们通常不会接触到服务器硬件,而是通过各种远程管理方式对服务器进行控制. 常见的远程管理工具方式: -RDP(remote deskto ...