XML解析,简单易学(Jdom+XPath)让你轻松上手: 精简Demo(含jar包)

一、前言:对于初学者而言,XML文档操作,让人望而止步。本案例让你轻松上手。

二、准备工作:下载 Jdom jar包。

方法一:http://www.jdom.org/downloads/index.html 进入网页后:点击左侧:Downloads Binaries ,然后选择右侧的版本下载

方法二:http://www.jdom.org/dist/binary/archive/  直接下载对应版本

方法三:https://dom4j.github.io/ 进入页面后,页面中上方,寻找DownLoad字眼

三、创建工程。

1、创建Java工程Jdom

2、创建Java测试类:JdomTest

3、创建XML文件(测试案例)

4、工程中,引入已下载的Jdom的jar包,建议使用2以上的版本。

四、具体代码。

主类:JsomTest.java

package com.xp.jdom.mode;

import java.util.*;
//import org.jdom.*;//老版本写法
import org.jdom2.*;//新版本写法
import org.jdom2.input.SAXBuilder;
import org.jdom2.xpath.*;
public class JdomTest {

	//Jdom + Xpath测试案例 (老版本的Xpath写法,比较繁琐,逐步被废弃)
	public static void testJdomAndXpath() throws Exception {
		SAXBuilder sb = new SAXBuilder();
		Document doc = sb.build("sample.xml");
		Element root = doc.getRootElement();
		List<Element> list = (List<Element>) XPath.selectNodes(root, "/HD/disk");
		for (Element element:list) {
			String name = element.getAttributeValue("name");
			String capacity = ((Text) XPath.selectSingleNode(element,"//disk[@name='" + name + "']/capacity/text()")).getTextNormalize();
			String directories = ((Text) XPath.selectSingleNode(element,"//disk[@name='" + name + "']/directories/text()")).getTextNormalize();
			String files = ((Text) XPath.selectSingleNode(element,	"//disk[@name='" + name + "']/files/text()")).getTextNormalize();
			System.out.println("磁盘信息:");
			System.out.println("分区盘符:" + name);
			System.out.println("分区容量:" + capacity);
			System.out.println("目录数:" + directories);
			System.out.println("文件数:" + files);
			System.out.println("-----------------------------------");
		}
	}

	//纯Jdom 测试案例(Jdom版本2已融合Xpath的功能,更简便)
	public static void JdomTest()throws Exception {
		SAXBuilder sb = new SAXBuilder();
		// Document doc = sb.build("sample.xml");//写法1:默认是从项目根目录找
		Document doc = sb.build(new JdomTest().getClass().getResourceAsStream("sample.xml"));// 写法2:读取某个java类同级目录下的文件

		Element root = doc.getRootElement();
		List<Element> list = root.getChildren("disk");
		for (Element element:list) {
			String name = element.getAttributeValue("name");
			String capacity = element.getChildText("capacity");
			String directories = element.getChildText("directories");
			String files = element.getChildText("files");
			System.out.println("磁盘信息:");
			System.out.println("分区盘符:" + name);
			System.out.println("分区容量:" + capacity);
			System.out.println("目录数:" + directories);
			System.out.println("文件数:" + files);
			System.out.println("-----------------------------------");
		}
	}
	public static void main(String[] args) throws Exception {
		testJdomAndXpath();//老版本写法		
		JdomTest();//新版本Jdom 2 写法
	}
}

辅助文件:sample.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>

运行结果:

磁盘信息:
分区盘符:C
分区容量:8G
目录数:200
文件数:1580
-----------------------------------
磁盘信息:
分区盘符:D
分区容量:10G
目录数:500
文件数:3000

官网的jar包实在不会下载(官网总是不定期改动),安排:点这里,为你准备的Jdom,jar包 (资源分有限的,请留言,无偿发放给爱学习的你)

参考:JDOM/XPATH编程指南

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值