文档章节

使用XPath语法和w3c.dom解析xml

如梦技术
 如梦技术
发布于 2016/06/01 15:41
字数 186
阅读 37
收藏 1

XPath 语法

《w3school》XPath 语法:http://www.w3school.com.cn/xpath/xpath_syntax.asp

基于Jdk的w3c.dom xml解析工具类

http://git.oschina.net/jfinal/jfinal-weixin/blob/master/src/main/java/com/jfinal/weixin/sdk/utils/XmlHelper.java

代码示例

@Test
public void test001() {
	String xml =
			"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" +
			"<bookstore>\n" +
				"<book>\n" +
					"<title lang=\"eng\">Harry Potter</title>\n" +
					"<price>29.99</price>\n" +
				"</book>\n" +
				"<book>\n" +
					"<title lang=\"eng\">Learning XML</title>\n" +
					"<price>39.95</price>\n" +
				"</book>\n" +
			"</bookstore>";

	XmlHelper xmlHelper = XmlHelper.of(xml);
	String title1 = xmlHelper.getString("//book[1]/title");
	Assert.assertEquals(title1, "Harry Potter");

	String titleLang = xmlHelper.getString("//book[1]/title/@lang");
	Assert.assertEquals(titleLang, "eng");

	Number price1 = xmlHelper.getNumber("//book[1]/price");
	System.out.println(price1.doubleValue());

	Node node = xmlHelper.getNode("//book[2]/title");
	String titleLang2 = xmlHelper.getString(node, "@lang");
	Assert.assertEquals(titleLang2, "eng");

	Assert.assertEquals(titleLang, titleLang2);
}

说明

适用于不太复杂xml的简单解析,例如项目配置等。

优点:无任何第三方依赖。

© 著作权归作者所有

如梦技术

如梦技术

粉丝 363
博文 53
码字总数 25800
作品 6
朝阳
后端工程师
私信 提问
python中用xpath解析网页的基本方法

1. 背景 目前爬虫解析网页的技术有:Json, 正则表达式,BeautifulSoup,PyQuery,XPath XPath 教程 官方文档: 2. XPath简述 2.1. 什么是XPath? XPath (XML Path Language) 是一门在 XML 文...

zwq912318834
2017/10/08
0
0
后端服务的查询语言和执行引擎 - GraphQuery

GraphQuery —— 与任何后端服务相关联的查询语言和执行引擎 概述 GraphQuery 是一门易于使用的查询语言,它内置了 Xpath/CSS/Regex/JSONpath 选择器和文本处理功能。 你可以使用简洁的 Grap...

故事细腻_
2018/10/26
723
0
自风/Spiderman

Spiderman - Java开源Web数据抽取工具 置顶:Spiderman2最新的预览版本已经出炉啦!简洁,更高性能,采集状态持久化,分布式,支持JS脚本,赶紧来体验一把吧!PS:后面稳定版本会更新到这里 ...

自风
2013/08/19
0
0
XPath概述 及 dom4j支持xpath的操作

XPath概述及实例 1、什么是XPath 2、使用dom4j支持xpath具体操作(这个很重要**) 3、学生管理系统的代码实现(*) ========================================================== 1、什么是X...

Eric-Zhou
02/28
20
0
C# WinForm开发系列 - XML/XSLT/XPATH

XML在WinForm, Asp.Net, Java, AJAX开发等方面应用, 以及对XML文档基本操作,如XPath检索节点. 当前XML被广泛应用与配置保存, 简单数据存储, 跨平台数据传输, 其身影活跃于Web Services, AJA...

长征2号
2017/07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Shell学习记录(持续更新)

一、shell定时备份数据库任务通用脚本 目标:根据定时任务启动脚本,执行数据库备份任务,按照日期进行每日备份,如已经备份则脚本停止,备份任务完成后将结果发送邮件提醒 1.执行数据库备份...

网络小虾米
今天
3
0
PHP计算两个经纬度地点之间的距离

/** * 求两个已知经纬度之间的距离,单位为米 * * @param lng1 $ ,lng2 经度 * @param lat1 $ ,lat2 纬度 * @return float 距离,单位米 * @author www.Alixixi.com */function get...

子枫Eric
今天
14
0
Linux—day 4

ch2 需要掌握的命令 (1)cat -n 1.txt (2)more 1.txt (3)head -n 15 initial-setup-ks.cfg (4)tail -n 17 initial-setup-ks.cfg;tail -f initial-setup-ks.cfg (5)cat -n anaconda-ks.c......

呵呵暖茶
今天
31
0
【Kubernetes社区之路】我的PR被抢了

2019年11月的某天,我无意间发现一个PR作者在自己的PR中抱怨自己的PR没被合入,而另一个比自己提交晚且内容几乎一样的PR则被合入了。 字里行间透露些许伤感外加无奈,原文如下: 作为一名开源...

恋恋美食
今天
40
0
阻塞队列

对于许多线程问题, 可以通过使用一个或多个队列以优雅且安全的方式将其形式化。生产者线程向队列插人元素, 消费者线程则取出它们。 使用队列, 可以安全地从一个线程向另 一个线程传递数据...

ytuan996
今天
48
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部