学习笔记-解析xml文件
1. Dom4J
<students>
<student>
<name>吴飞</name>
<college>java学院</college>
<telephone>62354666</telephone>
<notes>男,1982年生,硕士,现就读于北京邮</notes>
</student>
</students>
第一步:创建解析器
SAXReader reader = new SAXReader();
第二步:Document对象:通过解析器read方法获取
Document doc = reader.read("xxxx.xml");
第三步:获取 xml根节点
Element root = doc.getRootElement();
第四步:遍历解析子节点
遍历 root根节点下的student子节点
for(Iterator iter = root.elementIterator();iter.hasNext();){
获取 student 节点对象
Element stuElement = (Element)iter.next();
遍历 stuElement 节点下的所有子节点:name,colleage,telephone,notes
for(Iterator innerIter = stuElement.elementIterator();innerIter.hasNext();){
获取 student节点下的子节点对象
Element innerElement = (Element)innerIter.next();
通过 innerElement 的 getName()获取节点名称,getStringValue()获取节点值
innerElement.getName();
innerElement.getStringValue();
2.SAX
创建解析工厂
SAXParserFactory saxParserFactory = SAXParaserFactory.newInstance();
创建解析器
SAXParser saxParser = saxParserFactory.newSAXParser();
执行parser方法,传入两个参数:xml文件路径、事件处理器
saxParser.parser(“xxxx.xml”, new MyDefaultHander());
(4) 创建一个类 MyDefaultHander(),继承 DefaultHander类,重写三个方
a. startElement 获取开始标签,重要的两个参数说明
qName:把标签名称返回
attributes:返回标签中的属性对象
b. character 获取标签文本内容
c. endElement 获取结束标签
3.Dom4j + xPath
<config>
<database-info>
<driver-name>com.mysql.jdbc.Driver</driver-name>
<url>jdbc:mysql://192.168.7.151:8080/home</url>
<user>root</user>
<password>123</password>
</database-info>
</config>
第一步:通过 SAXReader 获取解析器
SAXReader reader = new SAXReader();
第二步:通过解析器的 read方法获取Document对象
Document doc = reader.read(“sys-config.xml”);
第三步:通过 xpath 语法获取driver-name 节点
Element driverNameElt = doc.selectObject(“/config/database-info/driver-name”);
String driverName= driverNameElt.getStringValue();
学习笔记-解析xml文件的更多相关文章
- XML学习——java解析xml文件
递归获取每个标签 package test; import java.io.File; import java.util.List; import org.dom4j.Document; import ...
- Struts2 学习笔记——struts.xml文件之Bean的配置
Struts2的大部分核心组件不是以硬编码的形式写在代码中,而是通过自身的IoC容器来管理的. Struts2以可配置的形式来管理核心组件,所以开发者可以很容易的扩展框架的核心组件.当开发者需要扩展或 ...
- 【Android学习笔记】XmlResourceParser解析xml文件
最近学习Android时,需要用到解析XML文件里的数据,可以用XmlResourceParser来解析xml文件,正好将此记录下来. XmlResourceParser里常用的字段和方法 首先先给出 ...
- ACEXML解析XML文件——我是如何学习并在短时间内掌握一个库的使用方法的
最近做的C++项目中需要使用xml文件保存一些信息,程序启动时会读取这些信息.最终经过主程的评测,决定使用ACEXML库来读取解析XML文件. 好吧,至于为什么选择ACEXML库,我就不说了.既然选择 ...
- Android开发学习---使用XmlPullParser解析xml文件
Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将 ...
- JAVA使用SAX解析XML文件
在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...
- java中采用dom4j解析xml文件
一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...
- dom4j如何解析XML文件
最近在 一些对xml文件的操作,下面简单写一个dom4j解析xml文件并将其封装到一个javabean中的例子,只是具有针对性的,不是通用的,仅供参考哦~~ 首先说:dom4j是一个java的XML ...
- java解析XML文件
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源 ...
随机推荐
- HackerRank "Components in a graph"
Regular Union-Find practice one. #include <cmath> #include <cstdio> #include <climits ...
- erlang的shell历史记录
erlang的shell默认重启以后木有历史记录,略蛋疼,开发的时候略不便 网上找了个方式 sudo apt-get install rlwrap vim ~/.bash_profile alias ...
- Metro 应用无法打开解决办法
1.恢复默认UAC设置: 2.恢复自带防火墙服务启动类型为自动: 3.设置IE为默认浏览器(搜索和应用中): 4.如有可能使用Microsoft帐户,而不是本地帐户(仅使用有限的几个Metro应用): ...
- Apache日志不记录图片文件设置方法和来源日志的配置
Apache日志不记录图片文件设置方法 <FilesMatch "\.(ico|gif|jpg|swf)">SetEnv IMAG 1</FilesMatch&g ...
- 二. Socket用法
C/S通信架构中,客户端要主动与服务端建立连接,这个链接就是Socket套接字.服务端收到连接请求后,也会开启Socket记录与客户端的链接.C/S两端都要建路Socket才能正常收发数据. 一.构造 ...
- Observer - IO (File Monitor)
1. 概述 有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己. 2. ...
- spark RDD transformation与action函数整理
1.创建RDD val lines = sc.parallelize(List("pandas","i like pandas")) 2.加载本地文件到RDD ...
- Scala控制抽象
private def filesHere = (new java.io.File(".")).listFiles() def filesEnding(query: String) ...
- BestCoder Round #87 LCIS(dp)
LCIS 要用dp的思路想这题 [题目链接]LCIS [题目类型]dp &题意: 给定两个序列,求它们的最长公共递增子序列的长度, 并且这个子序列的值是连续的,比如(x,x+1,...,y−1 ...
- POJ 1410 Intersection(计算几何)
题目大意:题目意思很简单,就是说有一个矩阵是实心的,给出一条线段,问线段和矩阵是否相交解题思路:用到了线段与线段是否交叉,然后再判断线段是否在矩阵里面,这里要注意的是,他给出的矩阵的坐标明显不是左上和 ...