xml解析工具-jdom
前言:近期接触SSH框架的时候,经常得配置一下xml文件;今天闲来没事就挖挖xml解析的原理供大伙儿分享。本文主要通过一个简单的例子解析一个xml文件。明白其中缘由之后,大家想定义自己的xml也绝非难事~
JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。其解析步骤其实很简单,可以将一个xml文件类比一棵树。首先从根节点开始解析,之后遍历左右孩子结点,孩子结点再递归解析孩子结点。。。(注意,遍历的时候应该区别于深度优先遍历,准确的理解应该是层次遍历!)
·树级解析

·Java代码
2个文件(test.xml和Sample1.java),另外请自己上网下载jdom.jar包。
Sample1.java
import java.util.*;
import org.jdom.*;
import org.jdom.input.SAXBuilder; public class Sample1 {
public static void main(String[] args) throws Exception {
SAXBuilder sb = new SAXBuilder(); Document doc = sb.build(Sample1.class.getClassLoader()
.getResourceAsStream("test.xml")); // 构造文档对象
Element root = doc.getRootElement(); // 获取根元素HD
List list = root.getChildren("disk");// 取名字为disk的所有元素
for (int i = 0; i < list.size(); i++) {
Element element = (Element) list.get(i); String capacity=element.getChildText("capacity");//取disk子元素capacity的内容
String directories=element.getChildText("directories");
String files=element.getChildText("files"); System.out.println("磁盘信息:");
System.out.println("分区容量:"+capacity);
System.out.println("目录数:"+directories);
System.out.println("文件数:"+files);
System.out.println("-----------------------------------");}
}
}
test.xml
<?xml version="1.0" encoding="UTF-8"?>
<HD>
<disk name="C">
<capacity>8G</capacity>
<directories>200</directories>
<files>1580</files>
</disk> <disk name="D">
<capacity>10G</capacity>
<directories>500</directories>
<files>3000</files>
</disk>
</HD>
·解析结果
磁盘信息:
分区容量:8G
目录数:200
文件数:1580
-----------------------------------
磁盘信息:
分区容量:10G
目录数:500
文件数:3000
-----------------------------------
结语:据说dom4j解析工具包更好用,有机会得试试~不过其原理想必都差不多!
xml解析工具-jdom的更多相关文章
- Java XML解析工具 dom4j介绍及使用实例
Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...
- NSXMLParser自定义的一个xml解析工具
// // DenglXMLParser.h // #import <Foundation/Foundation.h> @interface DenglXMLParser : NSXMLP ...
- Java -- XML解析工具dom4j
前言 XML现已成为一种通用的数据交流方式,它的平台无关性.语言无关性.系统无关性.给数据集成与交互带来了极大的方便,对于XML的解析有四种方式:DOM生成和解析XML文档,SAX生成和解析XML文件 ...
- 【Java】XML解析之JDOM
JDOM介绍 JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析.生成.序列化以及多种操作.使用jdom需要引入jdom.jar包. XML生成及解析 代码如下: pac ...
- xml 解析之 JDOM解析
JDOM 是一种使用 XML 的独特 Java 工具包,用于快速开发 XML 应用程序.JDOM 是一个开源项目,它基于树形结构,利用纯 Java 的技术对 XML 文档实现解析.生成.序列化及多种操 ...
- XML解析工具类
public class XmlUtil { /* * 利用dom4j解析xml文件内容,并返回map数据形式 * path是.xml文件所在的路径 */ public static Map<S ...
- [转]xml解析工具的效率比较QDomDocument、TinyXml-2、RapidXml、PugiXml
转自:http://www.itdaan.com/blog/2017/02/20/301ad47832f4.html 由于windows环境下测试不稳定,博主选择在linux下进行的测试! Qt - ...
- xml解析工具mashaller javaee自带解析类
1.怎样去掉Marshaller的格式化? : JAXBContext context = JAXBContext.newInstance(Entity.class); Marshaller mars ...
- java自带的xml解析工具类
public class JaxbUtil { /** * java对象转换为xml文件 * * @param xmlPath xml文件路径 * @param load java对象.Class * ...
随机推荐
- Json转换类库
20160605 简单的DaTable转Json private string DtConvertJson(DataTable dt , string modelName="") ...
- C# 文件下载四方法
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...
- js抽奖跑马灯程序
js抽奖跑马灯程序 点击下载代码
- Java 集合系列17之 TreeSet详细介绍(源码解析)和使用示例
概要 这一章,我们对TreeSet进行学习.我们先对TreeSet有个整体认识,然后再学习它的源码,最后再通过实例来学会使用TreeSet.内容包括:第1部分 TreeSet介绍第2部分 TreeSe ...
- hadoop1.2.1伪分布模式配置
1.修改core-site.xml,配置hdfs <configuration> <property> <name>fs.default.name</name ...
- FineUI(专业版)高清大图赏析!(第二波)
FineUI(专业版)是由三生石上全新打造的基于 jQuery 的专业 ASP.NET 控件库,计划在七月下旬正式发布. 选择FineUI(专业版)的四大理由:1. 简单:专业版和开源版兼容(v4.x ...
- opencv5-objdetect之级联分类器
这是<opencv2.4.9tutorial.pdf>的objdetect module的唯一一个例子. 在opencv中进行人脸或者人眼 或者身体的检测 首先就是训练好级联分类器,然后就 ...
- 还记得高中的向量吗?leetcode 335. Self Crossing(判断线段相交)
传统解法 题目来自 leetcode 335. Self Crossing. 题意非常简单,有一个点,一开始位于 (0, 0) 位置,然后有规律地往上,左,下,右方向移动一定的距离,判断是否会相交(s ...
- 高性能JavaScript DOM编程
我们知道,DOM是用于操作XML和HTML文档的应用程序接口,用脚本进行DOM操作的代价很昂贵.有个贴切的比喻,把DOM和JavaScript(这里指ECMScript)各自想象为一个岛屿,它们之间用 ...
- Java:反射
初识Java反射机制: 从上面的描述可以看出Java的反射机制使得Java语言可以在运行时去认识在编译时并不了解的类/对象的信息,并且能够调用相应的方法或修改属性的值.Java反射机制的核心就是允许在 ...