XPath 是XML的查询语言,和SQL的角色很类似。以下面XML为例,介绍XPath 的语法。
<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
<cd country="USA">
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<price>10.90</price>
</cd>
<cd country="UK">
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<price>9.90</price>
</cd>
<cd country="USA">
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<price>9.90</price>
</cd>
</catalog>
定位节点
XML是树状结构,类似档案系统内数据夹的结构,XPath也类似档案系统的路径命名方式。不过XPath 是一种模式(Pattern),可以选出 XML档案中,路径符合某个模式的所有节点出来。例如要选catalog底下的cd中所有price元素可以用:
/catalog/cd/price
如果XPath的开头是一个斜线(/)代表这是绝对路径。如果开头是两个斜线(//)表示文件中所有符合模式的元素都会被选出来,即使是处于树中不同的层级也会被选出来。以下的语法会选出文件中所有叫做cd的元素(在树中的任何层级都会被选出来):
//cd
选择未知的元素
使用星号(Wildcards,*)可以选择未知的元素。下面这个语法会选出/catalog/cd 的所有子元素:
/catalog/cd/*
以下的语法会选出所有catalog的子元素中,包含有price作为子元素的元素。
/catalog/*/price
以下的语法会选出有两层父节点,叫做price的所有元素。
/*/*/price
以下的语法会选择出文件中的所有元素。
//*
要注意的是,想要存取不分层级的元素,XPath语法必须以两个斜线开头(//),想要存取未知元素才用星号(*),星号只能代表未知名称的元素,不能代表未知层级的元素。
选择分支
使用中括号可以选择分支。以下的语法从catalog的子元素中取出第一个叫做cd的元素。XPath的定义中没有第0元素这种东西。
/catalog/cd[1]
以下语法选择catalog中的最后一个cd元素:(XPathj并没有定义 first() 这种函式喔,用上例的 [1]就可以取出第一个元素。
/catalog/cd[last()]
以下语法选出含有price子元素的所有/catalog/cd元素。
/catalog/cd[price]
以下语法选出price元素的值等于10.90的所有/catalog/cd元素
/catalog/cd[price=10.90]
以下语法选出price元素的值等于10.90的所有/catalog/cd元素 的price元素
/catalog/cd[price=10.90]/price
选择一个以上的路径
使用Or操作数(|)就可以选择一个以上的路径。例如:
/catalog/cd/title | catalog/cd/artist
选择所有title以及artist元素
//title | //artist
选择所有title以及artist以及price元素
//title | //artist | //price
选择属性
在XPath中,除了选择元素以外,也可以选择属性。属性都是以@开头。例如选择文件中所有叫做country的属性:
//@country
选择所有含有country这个属性的cd元素:
//cd[@country]
以下语法选择出含有属性的所有cd元素
//cd[@*]
以下语法选择出country属性值为UK的cd元素
//cd[@country='UK']
更详细的说明参考:http://www.w3school.com.cn/xpath/index.asp
分享到:
相关推荐
### XPath简单语法详解 #### 一、XPath简介 XPath是一种在XML文档中查找信息的语言,类似于HTML中的CSS选择器或SQL中的查询语句。XPath能够快速定位到XML文档中的某个节点或者一组节点,并且可以用来抽取节点数据...
不可多得的xpath实例语法教程,里面有详细的实例,是学习xpath的好助手。...以往大家只能下载一些xpath的简单教程,现在还给大家提供详尽的实例教程和xpath观察器及验证器,真的不错。希望大家不要错过哟。
### XPath语法与函数知识点 ...无论是简单的数据检索还是复杂的文档转换,XPath都提供了灵活且高效的方法。通过对XPath的学习和实践,开发者可以更加高效地处理XML文档,实现数据的有效利用和管理。
JsonPath是一种用于从JSON文档中提取数据的语言,其语法与XPath在XML文档中的操作非常相似。XPath是XML处理中常用的一种路径表达式语言,而JsonPath则是为JSON数据设计的查询语言。在Java开发中,处理JSON格式的数据...
为了更好地理解XPath的工作原理,我们先来看一个简单的XML文档示例: ```xml <itemNumber>C2688-67037 <description>LCD液晶显示器 <quantity>1 <price>358.00 <itemNumber>C2688-67061 音箱 ...
路径表达式可以理解为类似于文件系统中文件路径的概念,例如 `/html/body/p` 是一个简单的XPath表达式,它表示从根节点开始,选取`html`元素下的所有`body`元素,再选取其中的所有`p`元素。 这个C#版的XPath生成器...
XPath的语法基础主要包括路径表达式、轴、节点测试、节点集以及函数等。下面将对这些概念进行详细介绍: 1. 路径表达式:路径表达式是XPath的核心,它由路径步骤组成,用斜线 `/` 分隔。例如,`/bookstore/book` ...
总结来说,"xpath 语法测试"提供了一个实践XPath的环境,结合Web服务、jQuery和AJAX,展示了XPath在现代Web开发中的应用。通过这个测试,开发者可以提升XPath技能,更有效地处理XML数据,提高代码的效率和可读性。
XPath Helper的安装过程非常简单。首先,你需要下载"xpath_helper.zip"压缩包并解压。在Chrome浏览器中,点击右上角的三个垂直点,进入“更多工具”菜单,然后选择“扩展程序”。在此页面中,打开右上角的“开发者...
4. **Xpath语法**: - `/`:根路径,从文档根节点开始选择。 - `//`:任何位置的子节点,跨层级选择。 - `.//`:当前节点的任何位置的子节点。 - `*`:匹配任何元素节点。 - `@`:用于选取属性。 - `text()`:...
XPath的基本语法包括: 1. 节点选择:例如,`/根元素/子元素` 用于选取根元素下的所有子元素。 2. 属性选择:通过在元素后加上`@属性名`来选取属性,如`//元素[@属性名='值']`。 3. 过滤选择:通过在路径后加上条件...
这是xml课程实验,查找所有最外层的section元素(假设仅知道section元素能够无限嵌套,但并不确定最外层的section出现在文档的什么层次上,也就是说:不要简单地使用/book/section)
XPath手册通常会包含更多详细的信息,比如XPath的完整语法、函数库的使用、命名空间的处理方法,以及各种复杂查询的实例,这对于初学者来说是非常有价值的参考资料。通过深入学习和实践,开发者可以熟练地利用XPath...
XPath的语法基于路径表达式,这些表达式可以指向XML文档中的特定节点。例如,`/html/body/p` 是一个路径表达式,它选择HTML文档中所有元素下的段落元素。XPath还支持轴的概念,如祖先轴(ancestor)、子节点轴(child)...
例如,"/html/body/p" 是一个简单的XPath,它会选择HTML文档中所有的段落(p)元素。XPath还支持相对路径,用于选取当前节点的子节点、父节点或同级节点。此外,XPath提供了许多函数和操作符,如选取所有满足特定...
以下是一个简单的Java XPath示例: ```java import javax.xml.xpath.*; import org.w3c.dom.*; import org.xml.sax.InputSource; public class XPathExample { public static void main(String[] args) throws ...
安装XPath-Helper的方法非常简单,其中包含的“xpath-helper.crx”文件是Chrome浏览器扩展程序的标准格式。只需将这个文件拖拽到浏览器的扩展管理页面(chrome://extensions/),或者右键点击文件选择“加载已解压的...
XPath,全称XML Path Language,是一种在XML...掌握XPath对于处理XML数据至关重要,无论是简单的查询还是复杂的转换,都能得心应手。深入学习XPath教程,理解其核心概念和用法,将极大提升处理XML文档的效率和灵活性。