有个第三方的包,用来解析.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解析)的更多相关文章

  1. Tomcat源码分析——SERVER.XML文件的加载与解析

    前言 作为Java程序员,对于Tomcat的server.xml想必都不陌生.本文基于Tomcat7.0的Java源码,对server.xml文件是如何加载和解析的进行分析. 加载 server.xm ...

  2. JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)

    1.解析XML主要有四种方式 1.DOM方式解析XML(与平台无关,JAVA提供,一次性加载XML文件内容,形成树结构,不适用于大文件) 2.SAX方式解析XML(基于事件驱动,逐条解析,适用于只处理 ...

  3. XML文件解析之DOM4J解析

    1.DOM4J介绍 dom4j的官网是http://www.dom4j.org/dom4j-1.6.1/,最新的版本是1.6.1,根据官网介绍可知.dom4j是一个易用的.开源的库,应用于Java平台 ...

  4. XML 解析之 dom4j 解析器

    dom4j 的使用需要导入 jar 包, 包括: dom4j-1.6.1 和 jaxen-1.1-beta 步骤: 在项目目录下,"Folder" 创建一个 lib 文件夹 复制 ...

  5. Android中XML文件的序列化生成与解析

    xml文件是非常常用的,在android中json和xml是非常常用的两种封装数据的形式,从服务器中获取数据也经常是这两种形式的,所以学会生成和解析xml和json是非常有用的,json相对来说是比较 ...

  6. Android之 解析XML文件(1)—— Pull解析

    (以下文章基本照抄<第一行代码>) 解析XML文件有很多方法,这里主要讲Pull解析和SAX解析.这篇文章主要是讲Pull解析. 一.Pull解析参考代码 先上代码: private vo ...

  7. Android学习记录(1)—Android中XML文件的序列化生成与解析

    xml文件是非常常用的,在android中json和xml是非常常用的两种封装数据的形式,从服务器中获取数据也经常是这两种形式的,所以学会生成和解析xml和json是非常有用的,json相对来说是比较 ...

  8. schema文件及XML文件的DOM和Sax解析

    schema文件 <?xml version="1.0" encoding="UTF-8"?> <schema xmlns="htt ...

  9. DOM综合案例、SAX解析、StAX解析、DOM4J解析

    今日大纲 1.DOM技术对xml的增删操作 2.使用DOM技术完成联系人管理 3.SAX和StAX解析 4.DOM4J解析 5.XPATH介绍 1.DOM的增删操作 1.1.DOM的增加操作 /* * ...

  10. Java操作xml文件的jar包dom4j

    只能解析xml文件,不能解析普通的文件 https://www.cnblogs.com/sharpest/p/7877501.html

随机推荐

  1. [HEOI2015]定价

    题目描述 在市场上有很多商品的定价类似于 999 元.4999 元.8999 元这样.它们和 1000 元.5000 元和 9000 元并没有什么本质区别,但是在心理学上会让人感觉便宜很多,因此也是商 ...

  2. JAVA通过使用sort方法排序

    java 代码: 对集合排序: //升序public void listSort1(){ List<Integer> list = new ArrayList<Integer> ...

  3. 26个高效工作的小技巧 z

    1.时间常有,时间优先. 2.时间总会有的:每天只计划4-5 小时真正的工作. 3.当你在状态时,就多干点:不然就好好休息:有时候会连着几天不是工作状态,有时在工作状态时却又能天天忙活 12 小时,这 ...

  4. 为了安全,linux下如何使用某个用户启动某个进程?

    安全里有个原则,叫最小权限原则 根据这个原则,对于启动某个应用或者进程,应该赋予其最小权限,根据应用权限要求,创建一个相应权限的用户,赋予其应用相应的权限,然后使用这个用户启用这个应用 如何使用某个用 ...

  5. Keras使用的一些细节

    1.Keras输出的loss,val这些值如何保存到文本中去: Keras中的fit函数会返回一个History对象,它的History.history属性会把之前的那些值全保存在里面,如果有验证集的 ...

  6. C++ 面试问题

    一面 (1) 多态性都有哪些?(静态和动态,然后分别叙述了一下虚函数和函数重载) (2) 动态绑定怎么实现?(就是问了一下基类与派生类指针和引用的转换问题) (3) 类型转换有哪些?(四种类型转换,分 ...

  7. 百科知识 kux文件如何打开

    即使是官方自带的浏览器也无法打开   你可以直接复制文件名   然后在百度里搜即可   你自己下载的东西还是能转码的      

  8. PPAPI插件的动态创建、改动、删除

    一旦你完毕了PPAPI插件的开发,实际使用时可能会有下列需求: 动态创建PPAPI插件 删除PPAPI插件 改变PPAPI插件的尺寸 实现起来非常easy,从JS里直接訪问DOM(BOM)就可以.以下 ...

  9. odoo 的时差 坑 [updated]

    很多人掉进了odoo的时间坑 odoo约定关于日期的数据,存放在数据库时,以 utc0 时区也就是不带时区存放,应用程序读取日期展示日期时,转换成用户的时区展示.用户的时区通过context传递. o ...

  10. Java太阳系小游戏分析和源代码

    Java太阳系小游戏分析和源代码 -20150809 近期看了面向对象的一些知识.然后跟着老师的解说做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下近期学的知识: 用到知识点:类的继承.方法的重载 ...