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编程指南
还没有评论,来说两句吧...