[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的 ...
随机推荐
- 在html中使用vue组件
最近在维护公司的项目,当我拿到项目时,发现他用了vue. 但是~~仅仅是引用vue.js文件,整体的架构还是html那种,没有用webpack! 当时觉得~哇~原来还可以这样! 然后了解了业务逻辑和代 ...
- jQuery中bind()与on()绑定事件的区别
.on()方法比.bind()方法多一个参数selector .on()的selector参数是筛选出调用.on()方法的dom元素的指定子元素,如: $("ul").on('cl ...
- MATLAB矩阵处理—特殊矩阵
需要掌握 MATLAB语言中特殊矩阵 MATLAB语言中矩阵的变幻 MATLAB语言矩阵如何求值 MATLAB语言中特征值与特征向量 MATLAB语言中稀疏矩阵 2.1 特殊矩阵 如何建立矩阵? 逐 ...
- 201771010113 李婷华 《面向对象程序设计(java)》第七周学习总结
一.理论知识学习部分 1.动态绑定:又称为运行时绑定.程序在运行时会自动选择调用哪个方法. 2.静态绑定:如果方法是private.static.final修饰的,或者是构造器,那么编译器能准确地判断 ...
- 【Scala】利用Akka的actor编程模型,实现2个进程间的通信
文章目录 步骤 一.创建maven工程,导入jar包 二.master进程代码开发 三.worker进程代码开发 四.控制台结果 步骤 一.创建maven工程,导入jar包 <propertie ...
- 自己动手在Linux系统实现一个everything程序
大家好,我是良许. 我们知道,在 Windows 下,有一款非常实用的神器,叫作 Everything ,它可以在极短的时间里,搜索出来你所想要的文件/目录,如下图示: Linux 下也有一些类似于 ...
- dp规划之矩阵连乘问题
问题描述:给定n个矩阵{A1,A2,...,An},其中Ai与Ai+1是可乘的,我们要计算这n个矩阵的最少计算次数. 将多个矩阵连乘抽象为最后一次计算即两个矩阵相乘. public static v ...
- [zoj3596]DP(BFS)
题意:求n的最小倍数,满足性质P:十进制的每一位上的数有m种(0<m<=10). 思路:直接枚举n的最小倍数,然后检测是否满足性质P,n一大很容易超时,并且无法判断无解的情况.巧妙的做法是 ...
- CTR学习笔记&代码实现5-深度ctr模型 DeepCrossing -> DCN
之前总结了PNN,NFM,AFM这类两两向量乘积的方式,这一节我们换新的思路来看特征交互.DeepCrossing是最早在CTR模型中使用ResNet的前辈,DCN在ResNet上进一步创新,为高阶特 ...
- C:复试
C语言程序设计基础知识 C语言特点 1.是一种兼有高级语言和汇编语言优点的语言 2.是一种结构化程序设计语言 3.数据类型丰富 4.具有丰富的运算符 5.具有预处理功能 合理算法的特点 1.有输入 2 ...