xml文件的解析(用dom4j解析)
有个第三方的包,用来解析.xml文件比较方便,它是DOM4J。由于是第三方的,所以要使用它就要先下载,并包含进来。步骤:
1.打开dom4j官网,这里下载最新版dom4j-2.1.1.jar.


2.新建文件夹lib.

3.把下载好的dom4j.jar放到lib文件夹里面。
4.对着dom4j.jar右键-Build Path-Add to Build Path.(1或者2都可以用来解析.xml).

5.新建类。

6.开始写代码:
package com.bjsxt.xml; import java.io.File; import javax.swing.text.Document;
import javax.swing.text.html.HTMLDocument.Iterator;
import javax.swing.text.html.parser.Element; import org.dom4j.Attribute;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
public class TestXml { public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
//[1]创建SAXReader对象,用于读取.xml文件
SAXReader reader = new SAXReader();
//[2]读取.xml文件,得到document对象,它代表了整个.xml文件。
org.dom4j.Document doc = reader.read(new File("src/scores.xml"));
//System.out.println(doc);
//获取根元素
org.dom4j.Element root=doc.getRootElement();
System.out.println("这是根元素:"+root.getName());
//[4]获取根元素下所有子元素
java.util.Iterator<org.dom4j.Element> it=root.elementIterator();//获取(获取根元素下)所有子元素的一个迭代器。
while(it.hasNext())
{//取出元素
org.dom4j.Element e=it.next();
System.out.println(e.getName());
//获取每个student的id属性:
Attribute id=e.attribute("id");
System.out.println(id.getName()+"="+id.getValue());//打印
org.dom4j.Element name=e.element("name");
org.dom4j.Element course=e.element("course");
org.dom4j.Element score=e.element("score");
System.out.println(name.getName()+"="+name.getStringValue());
System.out.println(course.getName()+"="+course.getText());
System.out.println(score.getName() + "=" + score.getText());
System.out.println("----------------------");
}
} }
/*
运行结果:
这是根元素:scores
student
id=1
name=王同
course=java
score=89
----------------------
student
id=2
name=李佳
course=sql
score=58
----------------------
student
id=3
name=王二狗
course=经济学原理
score=88
----------------------
student
id=4
name=刘德华
course=怎样做一个好演员
score=100
---------------------- */
7.上课老师的总结:用dom4j解析.xml的时候,只需注意两点,a.入手点是先创建一个Document对象;b.然后拿Document对象获取根元素,从根元素开始就可以一路用迭代器迭代下去,碰到元素就迭代元素,碰到属性就迭代属性,就可以用属性.getName/getStringValue/getText取出元素的所有属性。
xml文件的解析(用dom4j解析)的更多相关文章
- Tomcat源码分析——SERVER.XML文件的加载与解析
前言 作为Java程序员,对于Tomcat的server.xml想必都不陌生.本文基于Tomcat7.0的Java源码,对server.xml文件是如何加载和解析的进行分析. 加载 server.xm ...
- JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)
1.解析XML主要有四种方式 1.DOM方式解析XML(与平台无关,JAVA提供,一次性加载XML文件内容,形成树结构,不适用于大文件) 2.SAX方式解析XML(基于事件驱动,逐条解析,适用于只处理 ...
- XML文件解析之DOM4J解析
1.DOM4J介绍 dom4j的官网是http://www.dom4j.org/dom4j-1.6.1/,最新的版本是1.6.1,根据官网介绍可知.dom4j是一个易用的.开源的库,应用于Java平台 ...
- XML 解析之 dom4j 解析器
dom4j 的使用需要导入 jar 包, 包括: dom4j-1.6.1 和 jaxen-1.1-beta 步骤: 在项目目录下,"Folder" 创建一个 lib 文件夹 复制 ...
- Android中XML文件的序列化生成与解析
xml文件是非常常用的,在android中json和xml是非常常用的两种封装数据的形式,从服务器中获取数据也经常是这两种形式的,所以学会生成和解析xml和json是非常有用的,json相对来说是比较 ...
- Android之 解析XML文件(1)—— Pull解析
(以下文章基本照抄<第一行代码>) 解析XML文件有很多方法,这里主要讲Pull解析和SAX解析.这篇文章主要是讲Pull解析. 一.Pull解析参考代码 先上代码: private vo ...
- Android学习记录(1)—Android中XML文件的序列化生成与解析
xml文件是非常常用的,在android中json和xml是非常常用的两种封装数据的形式,从服务器中获取数据也经常是这两种形式的,所以学会生成和解析xml和json是非常有用的,json相对来说是比较 ...
- schema文件及XML文件的DOM和Sax解析
schema文件 <?xml version="1.0" encoding="UTF-8"?> <schema xmlns="htt ...
- DOM综合案例、SAX解析、StAX解析、DOM4J解析
今日大纲 1.DOM技术对xml的增删操作 2.使用DOM技术完成联系人管理 3.SAX和StAX解析 4.DOM4J解析 5.XPATH介绍 1.DOM的增删操作 1.1.DOM的增加操作 /* * ...
- Java操作xml文件的jar包dom4j
只能解析xml文件,不能解析普通的文件 https://www.cnblogs.com/sharpest/p/7877501.html
随机推荐
- CEF General Usage(CEF3预览)
CEF General Usage(CEF3预览) 介绍 CEF全称Chromium Embedded Framework,是一个基于Google Chromium 的开源项目.Google Chro ...
- 邁向IT專家成功之路的三十則鐵律 鐵律二十四:IT人歲月增長之道-智慧
老子曾經在道德經中提到:「以道為本而繁守不失的,可算是長久.身雖死亡而精神不朽的,可算是長壽」.人在世間最悲哀的莫過於老死,但最可貴的則莫過於智慧.只是人的智慧不一定會隨著年齡的增長與歲月的流逝而成長 ...
- 【jar】JDK将单个的java文件打包为jar包,并引用到项目中使用【MD5加密】
==================================================================================================== ...
- 第五讲_图像识别之图像检测Image Detection
第五讲_图像识别之图像检测Image Detection 目录 物体检测 ILSVRC竞赛200类(每个图片多个标签):输出类别+Bounding Box(x,y,w,h) PASCAL VOC 20 ...
- PS 基础知识 渐变编辑器如何使用
ps渐变编辑器在哪 [ 标签:渐变,ps 渐变,编辑器 ] _______志 敏 回答:3 人气:9 解决时间:2009-04-16 15:28 满意答案 你先点渐变工具 然后左上出现渐变条设置 如图 ...
- 设计模式之中介者模式(Mediator)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程.它们帮助一个系统独立于怎样创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- Python web 框架:web.py
web.py 是一个Python 的web 框架,它简单而且功能强大.web.py 是公开的,无论用于什么用途都是没有限 制的. web.py 安装: pip install web.py 下面开始我 ...
- HDMI
HDMI,全称为(High Definition Multimedia Interface)高清多媒体接口,主要用于传输高清音视频信号. 现在是HDMI2.0.新一代的HDMI2.0较上一代最大的提升 ...
- 数据库如何让自增id重置
sql语句:truncate tablename; 会清空表的所有记录,并且使自增的id重置. 另外,navicat的截断表,就是这个功能. 它的清空表只会清空数据,不能使自增的id重置.
- Spring Cloud(十一):Spring Cloud Zuul网关 Filter、熔断、重试、高可用的使用方式
上篇文章主要介绍了Zuul网关使用模式,以及自动转发机制,但其实Zuul还有更多的应用场景,比如:鉴权.流量转发.请求统计等等,这些功能都可以使用Zuul来实现. Zuul的核心 Filter是Zuu ...