最近感觉xml的用处挺大的,特别是在数据交互的时候,比如ajax从后台取的数据,就可以得到一个xml文本,还有在很多框架的配置都是用xml进行配置,所以懂得如何从xml提取所需要的信息很重要,在网上学习了一下XPath,虽然网上都有,但是自己还是想整理一下,留着日后用用到时可以参考一下。
一、什么是XPath
XPath 使用路径表达式在 XML 文档中进行导航,确切的说它是一个标准的路径,根据该路径可以解析出xml文档里面的信息。
二、xml基本语法。
1、xml文档
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
2、选取节点
表达式 功能
nodename 选取此节点的所有节点
/ 从根节点开始选取
// 从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性
3、列子
bookstore 选取bookstore节点的所有节点
bookstore/book 选取bookstore节点下的所以book节点
//book 选取所有的book节点,而不管它们在文档中的位置
bookstore//book 选取bookstore节点下的所有book节点
//@lang 选取属性为lang的节点
3、谓语
/bookstore/book[1] 选取bookstore下的第一个book节点
/bookstore/book[last()] 选取bookstore节点下的最后一个book节点
/bookstore/book[position()<3] 选取bookstore节点下的第一和第二个节点
//title[@lang] 选取属性为lang的所有title节点
//title[@lang='eng'] 选取属性为lang并且值为eng的所以title节点
/bookstore/book[price<32.00] 选取bookstore下的price<32.00的book节点
/bookstore/book[price>30.00]/title 选取bookstore下的book的price>30.00的title节点
4选取未知节点
* 匹配任何元素节点
@* 匹配任何属性节点
node() 匹配任何类型的节点
5列子
/bookstore/* 选取bookstore元素的所以子元素
//* 选取文档中的所有元素
//title[@*] 选取所有带有属性的title元素
6、选取若干路径
//book/title|//book/price 选取 book 元素的所有 title 和 price 元素。
//title|//price
/bookstore/book/title|//price
7、XPath 轴
ancestor 选取当前节点的所以先辈节点
ancestor-or-self 选取当前节点的所有先辈节点及该节点
attribute 选取当前节点的所以属性
child 选取当前节点的所有子元素
descendant 选取当前节点的所以后代元素
descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身。
following 选取文档中当前节点的结束标签之后的所有节点。
preceding 选取文档中当前节点的开始标签之前的所有节点。
self 选取当前节点
8 、步的语法:
轴名称::节点测试[谓语]
9、例子
child::book 选取所有属于当前节点的子元素的book节点
attibute::lang 选取当前节点的lang属性
child::* 选取当前节点的所有子节点
attibute::* 选取当前节点的所以属性
child::text() 选取当前节点所有文本子节点
child::node() 选取当前节点的所有子几点
descendant::book 选取当前节点的所有book先辈
ancestor::book 选取当前节点的所有book父节点
ancestor-or-self::book
child::*/child::price 选取当前节点的所有孙price节点
10、xpath运算符
预算符 描述 实例 返回值
| 计算两个节点集 //book|//cd 返回所有拥有 book 和 cd 元素的节点集
+ 加法 5+4 9
- 减法 2-1 1
* 乘法 2*4 8
div 除法 8div4 2
= 等于 price=9.80 如果 price 是 9.80,则返回 true。如果 price 是 9.90
!=
<
<=
>
>=
or 或 price=9.80 or price=9.50 如果 price 是 9.80,则返回 true。如果 price 是 9.60,则返回 false。
and 与 price>9.00 and price<9.90
mod 计算除法的余数 5 mod 2
三、小结一下
xpath最大的好处就是可以很容易的从xml文档中提取出所需要的信息,不需要使用for循环从头遍历,要使用xpath语句,必须先创建httpRequest对象,就像ajax一样,缺点就是在不同的浏览器中,有写语法得不到想要的结果,具体的实例见附近。
分享到:
相关推荐
xpath简介、教程、Axes、节点、实例、语法、运算符
xpath 基础 培训资料
XPath基础知识
在scrapy中,对数据进行筛选和提取,采用较多的是XPath表达式。本文介绍了常用的提取方法。XPath是一种XML路径语言,通过该语言,可以在XML文档中迅速查找到相应的信息。 在XPath表达式中,使用“/”可以选择某个...
xpath案例,参考文档,附带dom4j的jar包
NULL 博文链接:https://tianqiushi.iteye.com/blog/2342241
该存储库包含有关xpath基础知识和xpath轴的简要概述。 讨论过的主题- * What is Xpath * Where to Use Xpath * Types of Xpath * Which Xpath statagy should be used * Xpath with some different fuctions ...
只有jar 没有文档 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery ...因此,对 XPath 的理解是很多高级 XML 应用的基础。
虽然还是候选推荐标准,但 XPath 2.0 即将得到正式批准。这是 1999 年以来对 ...XPath 2.0 推荐标准是 XSLT 2.0 和 XQuery 1.0 的基础。这两种语言都以 XPath 作为核心查询引擎,并增加了一些语句来格式化查询结果。
分享一个xpath的基础用法,介绍了小path的一些基本成操作,代码文件。。。一个基础操作用法。。。
XPath官方手册中文版,内容介绍的很全面,将xpath相关的基础如xml等介绍得很好,比较适合初学者
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时...因此,对 XPath 的理解是很多高级 XML 应用的基础。
web端自动化基础xpath
在uiautomatorviewer原有基础上增加多一个xpath显示。
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery...因此,对 XPath 的理解是很多高级 XML 应用的基础。 开始学习 XPath !
dom4j基础入门文档,与 W3C DOM API 相比,使用 dom4j 所包含的解析器的好处是 dom4j 拥有本地的 XPath 支持。
XML内容管理应用程序的...本入门教程提供了XSLT处理模型的基础,为开发者提供了重要的基本功. XSLT 是一种用于将 XML 文档转换为 XHTML 文档或其他 XML 文档的语言。 XPath 是一种用于在 XML 文档中进行导航的语言。
NULL 博文链接:https://ladybird2010.iteye.com/blog/842914
PART I – 概览.........................................................................................................................11 第 1章 – DB2 Express-C是什么?..................................