最近感觉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的基础用法,包括XPath的简介、教程、Axes、节点类型、实例、语法以及运算符。 1. **XPath简介** XPath是W3C标准的一部分,它的主要目的是为了提供一种简洁且相对独立的方式来定位XML文档中的...
**DOM4J与XPath基础应用** DOM4J和XPath是Java开发中处理XML文档的两个重要工具。在本文中,我们将深入探讨它们的基本概念、功能以及如何在实际项目中运用。 **DOM4J简介** DOM4J是一个非常灵活且功能强大的Java ...
xpath 基础 培训资料
### XPath基础知识深度解析 #### XPath概述 XPath是一种用于在XML文档中查找信息的语言,它提供了一种在XML文档中通过元素和属性进行导航的方式。XPath是XSLT(Extensible Stylesheet Language Transformations)...
XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,包括元素、属性、文本等。在Scrapy这个强大的Python爬虫框架中,XPath是数据提取的关键工具,使得我们可以高效...
XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,包括元素、属性、文本等。XPath基于XPath 1.0规范,但现代开发中也可能涉及XPath 2.0及以上版本,提供了更丰富...
1. **XPath基础概念**: - **节点类型**:XPath处理的节点包括元素(Element)、属性(Attribute)、文本(Text)、命名空间(Namespace)、处理指令(Processing Instruction)、注释(Comment)和文档(Document...
#### XPath基础语法 让我们通过一个示例XML文档来了解XPath的基本语法: ```xml <title>Empire Burlesque <artist>Bob Dylan <price>10.90 <title>Hide your heart <artist>Bonnie Tyler <price>...
1. XPath基础:路径表达式、节点类型、轴、函数库等。 2. XSLT结构:模板规则、模式匹配、变量和参数、输出指令。 3. 数据模型:理解XSLT如何表示XML文档。 4. 实践应用:如何创建XSLT样式表,以及在实际项目中应用...
5. XPath 基础:掌握选取节点的基本路径表达式,如 `/`、`.`、`..`、`*`、`@` 等。 6. XPath 函数:学习如何使用 `text()`、`count()`、`contains()` 等函数来过滤和处理节点。 7. JavaScript 中的 XPath 应用:了解...
#### 二、XPath基础语法 XPath的基础语法主要包括节点选择、属性选择、节点位置以及布尔表达式等几个方面。下面将对这些基础语法进行详细介绍: ##### 1. 节点选择 节点选择是XPath中最基本的功能之一,通过路径...
### XPath基础 XPath的语法基于路径表达式,它允许我们通过节点路径来定位XML文档中的元素。路径表达式可以是相对的或绝对的,类似于文件系统的路径。例如,`/root/element` 表示从根节点`root`开始,选取其下的...
该存储库包含有关xpath基础知识和xpath轴的简要概述。 讨论过的主题- * What is Xpath * Where to Use Xpath * Types of Xpath * Which Xpath statagy should be used * Xpath with some different fuctions ...
#### 二、Xpath基础知识 1. **Xpath定义** - Xpath全称为XML Path Language,是一种用于在XML或HTML文档中查找信息的语言。 - 它提供了一种简洁有效的方式来定位和处理文档中的各个部分。 2. **Xpath的选择功能*...
### XPATH基础与实战应用详解 #### 一、XPATH简介 XPATH是一种用于XML文档查询的语言,它能够帮助我们快速地在XML文档中查找信息。XPATH支持使用路径表达式来选取XML文档中的节点或者节点集。这些路径表达式非常...
**XPath基础** XPath是一种在XML文档中查找信息的语言。它的主要功能包括: 1. **节点选择**:通过表达式选取XML文档中的元素、属性、文本节点等。 2. **节点测试**:确定节点是否符合特定条件,如元素名、属性值...
### XSLT与XPath基础知识:转换XML文档与数据 #### 引言 随着XML内容管理应用的迅速增长,XSLT(可扩展样式表语言转换)与XPath的需求也在不断提升。对于许多开发者而言,掌握XSLT处理模型并不容易。本书...
#### 一、XSLT与XPath基础知识 **XSLT(Extensible Stylesheet Language Transformations)**是一种基于XML的标准语言,用于将一个XML文档转换成另一种XML文档或者HTML文档。XSLT通过一系列规则指定源XML文档如何被...
1. **XPath基础**: - **定义**:XPath是一种在XML文档中定位信息的语言,它可以用来选取元素、属性、文本等内容。 - **路径表达式**:如同文件路径,XPath使用路径来定位XML文档中的节点。例如,`/html/body/div...