XPath函数大全
- 格式:docx
- 大小:37.11 KB
- 文档页数:13
xpath 常用语法一、XPath简介XPath是一种用于在XML文档中定位节点的语言。
它是一种基于路径表达式的查询语言,可以通过节点名称、属性、位置等信息来查找XML文档中的节点。
二、XPath语法1. 节点选择器- 通配符:使用星号(*)表示选择所有节点。
- 元素节点:使用元素名称选择节点。
- 属性节点:使用[@属性名]选择节点。
- 文本节点:使用text()选择节点。
2. 路径表达式- 相对路径:使用斜杠(/)表示从根节点开始的路径。
- 绝对路径:使用双斜杠(//)表示不考虑节点位置的路径。
- 父节点:使用双点(..)表示选取当前节点的父节点。
- 子节点:使用斜杠(/)表示选取当前节点的子节点。
- 兄弟节点:使用斜杠加节点名称(/节点名称)表示选取当前节点的同级节点。
3. 谓语- 谓语是用来过滤节点的条件表达式,可以在节点选择器后面使用方括号([])来添加谓语。
- 谓语可以使用比较运算符(=、!=、<、>等)和逻辑运算符(and、or)进行条件判断。
4. 逻辑运算符- and:逻辑与运算符,表示同时满足两个条件。
- or:逻辑或运算符,表示满足其中一个条件。
- not:逻辑非运算符,表示不满足条件。
5. 数字函数- count():返回指定节点集合的节点数量。
- sum():计算指定节点集合的数值之和。
- avg():计算指定节点集合的数值平均值。
- min():返回指定节点集合的最小值。
- max():返回指定节点集合的最大值。
6. 字符串函数- concat():连接两个字符串。
- contains():判断一个字符串是否包含另一个字符串。
- starts-with():判断一个字符串是否以另一个字符串开头。
- ends-with():判断一个字符串是否以另一个字符串结尾。
- substring():截取字符串的一部分。
- string-length():返回字符串的长度。
XPath 教程XPath是一种在XML文档中查找信息的语言。
XPath被用来在XML文档中对元素和属性进行遍历。
XPath是W3C XSLT标准的主要元素,并且XQuery和XPointer同时被构建于XPath表达之上。
因此,对XPath的理解是很多高级XML应用的基础。
在W3School,我们提供完整的XPath 2.0、XQuery 1.0和XSLT 2.0的内置函数参考手册。
XPath 函数内容目录XPath 简介本章阐述XPath的概念。
XPath 节点本章详细介绍XPath中不同类型的节点,以及节点之间的关系。
XPath 语法本章阐述XPath的语法。
XPath 轴本章阐述XPath axes(轴)。
XPath 运算符本章列出了可以被用于XPath表达式的运算符。
XPath 实例本章使用"books.xml"文档来演示一些XPath实例。
XPath 摘要本文内容包括在本教程所学知识的一个总结,以及我们向你推荐的下一步应该学习的内容。
XPath 参考手册XPath 函数XPath 2.0、XQuery 1.0和XSLT 2.0的内置函数。
XPath 简介XPath是一种在XML文档中查找信息的语言。
XPath用于在XML文档中通过元素和属性进行导航。
在学习之前应该具备的知识:在您继续学习之前,应该对下面的知识有基本的了解:•HTML / XHTML•XML / XML 命名空间如果您希望首先学习这些项目,请在我们的首页访问这些教程。
什么是XPath?•XPath使用路径表达式在XML文档中进行导航•XPath包含一个标准函数库•XPath是XSLT中的主要元素•XPath是一个W3C标准XPath路径表达式XPath使用路径表达式来选取XML文档中的节点或者节点集。
这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
XPath标准函数XPath含有超过100个内建的函数。
xpath 轴函数
XPath轴函数是XPath语言中的一种非常重要的函数类型,在XPath路径表达式中,轴函数用于在XML文档树中匹配指定类型的节点。
XPath轴函数使用轴名来指示当前节点的父节点、子节点、兄弟节点、前面或后面的节点以及祖先节点等,从而为XPath定位提供了非常方便和高效的方式。
XPath轴函数主要分为以下七种类型:
1. 子节点轴(child::):用于定位当前节点的所有子元素。
2. 父节点轴(parent::):用于定位当前节点的父元素。
3. 祖先节点轴(ancestor::):用于定位当前节点的所有祖先元素。
4. 后代节点轴(descendant::):用于定位当前元素的所有后代元素。
5. 兄弟节点轴(following-sibling::和preceding-sibling::):用于定位当前节点的所有后继或前驱兄弟元素。
6. 属性节点轴(attribute::):用于定位当前元素的所有属性节点。
7. 命名空间节点轴(namespace::):用于定位当前元素的所有命名空间节点。
XPath轴函数的应用非常广泛,可以帮助开发人员快速而准确地定位XML文档中的各种节点,从而实现各种高效的XML文档解析和处理应用。
同时,XPath 轴函数的语法也非常简洁易懂,开发人员只需要按照统一的轴名规则进行定位即可,无需记忆复杂的语法规则,从而大大提高了开发效率。
总之,XPath轴函数是XPath语言中不可或缺的重要组成部分,对于XML文档的解析和处理应用具有非常重要的作用。
在使用XPath轴函数时,开发人员需要根据具体的应用需求选择合适的轴名和轴函数,从而实现各种高效的XML文档操作。
xpath定位中详解id、starts-with、contains、text()和last。
1、XPATH使⽤⽅法使⽤XPATH有如下⼏种⽅法定位元素(相⽐CSS选择器,⽅法稍微多⼀点):a、通过绝对路径定位元素(不推荐!)WebElement ele = driver.findElement(By.xpath("html/body/div/form/input"));b、通过相对路径定位元素WebElement ele = driver.findElement(By.xpath("//input"));c、使⽤索引定位元素WebElement ele = driver.findElement(By.xpath("//input[4]"));d、使⽤XPATH及属性值定位元素WebElement ele = driver.findElement(By.xpath("//input[@id='fuck']"));//其他⽅法(看字⾯意思应该能理解吧)WebElement ele = driver.findElement(By.xpath("//input[@type='submit'][@name='fuck']"));WebElement ele = driver.findElement(By.xpath("//input[@type='submit' and @name='fuck']"));WebElement ele = driver.findElement(By.xpath("//input[@type='submit' or @name='fuck']"));e、使⽤XPATH及属性名称定位元素元素属性类型:@id 、@name、@type、@class、@tittle//查找所有input标签中含有type属性的元素WebElement ele = driver.findElement(By.xpath("//input[@type]"));f、部分属性值匹配WebElement ele = driver.findElement(By.xpath("//input[start-with(@id,'fuck')]"));//匹配id以fuck开头的元素,id='fuckyou'WebElement ele = driver.findElement(By.xpath("//input[ends-with(@id,'fuck')]"));//匹配id以fuck结尾的元素,id='youfuck'WebElement ele = driver.findElement(By.xpath("//input[contains(@id,'fuck')]"));//匹配id中含有fuck的元素,id='youfuckyou'g、使⽤任意值来匹配属性及元素WebElement ele = driver.findElement(By.xpath("//input[@*='fuck']"));//匹配所有input元素中含有属性的值为fuck的元素元素定位总结//注:本专题只介绍java版//By idWebElement ele = driver.findElement(By.id());//By NameWebElement ele = driver.findElement(By.id());//By classNameWebElement ele = driver.findElement(By.className());//By tabNameWebElement ele = driver.findElement(By.tagName());//By linkTextWebElement ele = driver.findElement(By.linkText());//By partialLinkTextWebElement ele = driver.findElement(By.partialLinkText());//通过部分⽂本定位连接//By cssSelectorWebElement ele = driver.findElement(By.cssSelector());//By XPATHWebElement ele = driver.findElement(By.xpath());=================================栗⼦=====================================1、id 获取id 的属性值2、starts-with 顾名思义,匹配⼀个属性开始位置的关键字 -- 模糊定位3、contains 匹配⼀个属性值中包含的字符串 -- 模糊定位4、text() 函数⽂本定位5、last() 函数位置定位eg<input id="su" class="bg s_btn btnhover" value="百度⼀下" type="submit"/>//*[@id='su'] 获取id 的属性为'su' 的值或//input[contains(@class,'bg s_btn')]<a class="lb" href="https:///v2/?login&tpl=mn&u=http%3A%2F%%2F" name="tj_login" onclick="return false;">登录</a>//a[starts-with(@name,'tj_lo')] 属性模糊定位//a[contains(@name,'tj_lo')] 属性模糊定位<a href="">百度搜索</a>//a[text()='百度搜索']或//a[contains(text(),"搜索")] --⽂本模糊定位<a id="setf" href="///cache/sethelp/help.html" onmousedown="returnns_c({'fm':'behs','tab':'favorites','pos':0})" target="_blank">把百度设为主页</a>//a[text()='把百度设为主页']/A/B/C[last()] 表⽰A元素→B元素→C元素的最后⼀个⼦元素,得到id值为e2的E元素。
XPath语法规则一、XPath术语:1.节点:在XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。
XML 文档是被作为节点树来对待的。
树的根被称为文档节点或者根节点。
实例1:XML文档:<?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book><title lang="en">Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price></book></bookstore>上面的XML文档中的节点例子:<bookstore>(文档节点),<author>J K. Rowling</author>(元素节点),lang="en"(属性节点)。
2.基本值(或称原子值,Atomic value)基本值是无父或无子的节点。
基本值的例子:在实例1的xml文档中J K. Rowling、"en"3.项目(Item)项目是基本值或者节点。
4.节点的关系:1)父节点(Parent):每个元素以及属性都有一个父。
在上面实例1的xml 文档中,book 元素是title、author、year 以及price 元素的父节点。
2)子节点(Children):元素节点可有零个、一个或多个子。
在上面实例1的xml 文档中,title、author、year 以及price 元素都是book 元素的子。
3)同胞(Sibling):拥有相同的父的节点,在上面实例1的xml 文档中,title、author、year 以及price 元素都是同胞。
常用的XPath表达式一些常用的XPath表达式:/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操作数( ¦)就可以选择一个以上的路径。
XPath (XML Path Language) 是一种在XML文档中查找信息的语言。
XPath 可以用来在XML文档中对元素和属性进行遍历。
以下是一些基本的 XPath 语法:1. 选择一个元素:```xpath/elementName```例如,要选择所有的 `<p>` 元素,可以使用 `/p`。
2. 选择具有特定属性的元素:```xpath//elementName[@attributeName='attributeValue']```例如,要选择所有具有`title` 属性值为`example` 的`<a>` 元素,可以使用:`//a[@title='example']`。
3. 选择具有某个属性的元素:```xpath//elementName[@attributeName]```例如,要选择所有具有 `title` 属性的 `<a>` 元素,可以使用:`//a[@title]`。
4. 选择具有某个值的元素:```xpath//elementName[text()='textValue']```例如,要选择第一个 `<p>` 元素,其文本内容为 `example`,可以使用:`//p[text()='example']`。
5. 选择子元素或父元素:```xpath//parent/child//parent/ancestor::ancestorName```例如,要选择第一个 `<div>` 元素的第一个 `<p>` 子元素,可以使用:`//div/p`。
6. 选择同级元素:```xpath//elementName/following-sibling::* | //elementName/preceding-sibling::*```例如,要选择第一个 `<p>` 元素的所有同级元素,可以使用:`//p/following-sibling::* | //p/preceding-sibling::*`。
xpath使⽤⽅法⼀、选取节点常⽤的路劲表达式:表达式描述实例nodename选取nodename节点的所有⼦节点xpath(‘//div’)选取了div节点的所有⼦节点/从根节点选取xpath(‘/div’)从根节点上选取div节点//选取所有的当前节点,不考虑他们的位置xpath(‘//div’)选取所有的div节点.选取当前节点xpath(‘./div’)选取当前节点下的div节点..选取当前节点的⽗节点xpath(‘..’)回到上⼀个节点@选取属性xpath(’//@calss’)选取所有的class属性⼆、谓语谓语被嵌在⽅括号内,⽤来查找某个特定的节点或包含某个制定的值的节点实例:表达式结果xpath(‘/body/div[1]’)选取body下的第⼀个div节点xpath(‘/body/div[last()]’)选取body下最后⼀个div节点xpath(‘/body/div[last()-1]’)选取body下倒数第⼆个div节点xpath(‘/body/div[positon()<3]’)选取body下前两个div节点xpath(‘/body/div[@class]’)选取body下带有class属性的div节点xpath(‘/body/div[@class=”main”]’)选取body下class属性为main的div节点xpath(‘/body/div[price>35.00]’)选取body下price元素值⼤于35的div节点三、通配符Xpath通过通配符来选取未知的XML元素表达式结果xpath(’/div/*’)选取div下的所有⼦节点xpath(‘/div[@*]’)选取所有带属性的div节点四、取多个路径使⽤“|”运算符可以选取多个路径表达式结果xpath(‘//div|//table’)选取所有的div和table节点五、Xpath轴轴可以定义相对于当前节点的节点集轴名称表达式描述ancestor xpath(‘./ancestor::*’)选取当前节点的所有先辈节点(⽗、祖⽗)ancestor-or-self xpath(‘./ancestor-or-self::*’)选取当前节点的所有先辈节点以及节点本⾝attribute xpath(‘./attribute::*’)选取当前节点的所有属性child xpath(‘./child::*’)返回当前节点的所有⼦节点descendant xpath(‘./descendant::*’)返回当前节点的所有后代节点(⼦节点、孙节点)following xpath(‘./following::*’)选取⽂档中当前节点结束标签后的所有节点following-sibing xpath(‘./following-sibing::*’)选取当前节点之后的兄弟节点parent xpath(‘./parent::*’)选取当前节点的⽗节点preceding xpath(‘./preceding::*’)选取⽂档中当前节点开始标签前的所有节点preceding-sibling xpath(‘./preceding-sibling::*’)选取当前节点之前的兄弟节点self xpath(‘./self::*’)选取当前节点self xpath(‘./self::*’)选取当前节点六、功能函数使⽤功能函数能够更好的进⾏模糊搜索函数⽤法解释starts-with xpath(‘//div[starts-with(@id,”ma”)]‘)选取id值以ma开头的div节点contains xpath(‘//div[contains(@id,”ma”)]‘)选取id值包含ma的div节点and xpath(‘//div[contains(@id,”ma”) and contains(@id,”in”)]‘)选取id值包含ma和in的div节点text()xpath(‘//div[contains(text(),”ma”)]‘)选取节点⽂本包含ma的div节点。
XPath函数有关数值的函数结果:'Thérèse'fn:string-to-codepoints(string) 根据字符串返回代码点序列。
例子:string-to-codepoints("Thérèse")结果:84, 104, 233, 114, 232, 115, 101fn:codepoint-equal(comp1,comp2) 根据Unicode 代码点对照,如果comp1 的值等于comp2 的值,则返回true。
(/2005/02/xpath-functions/collation/codepoint),否则返回false。
∙fn:compare(comp1,comp2)如果comp1 小于comp2,则返回-1。
如果comp1 等于∙fn:compare(comp1,comp2,collation)comp2,则返回0。
如果comp1 大于comp2,则返回1。
(根据所用的对照规则)。
例子:compare('ghi', 'ghi')结果:0fn:concat(string,string,...) 返回字符串的拼接。
例子:concat('XPath ','is ','FUN!')结果:'XPath is FUN!' fn:string-join((string,string,...),sep) 使用sep 参数作为分隔符,来返回string 参数拼接后的字符串。
例子:string-join(('We', 'are', 'having', 'fun!'), ' ')结果:' We are having fun! '例子:string-join(('We', 'are', 'having', 'fun!'))结果:'Wearehavingfun!'例子:string-join((), 'sep')结果:''∙fn:substring(string,start,len)返回从start 位置开始的指定长度的子字符串。
XPath写法汇总一、简介XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。
由于XPath的强大功能和灵活性,它被广泛应用于XML数据的导航和查询。
XPath通过提供一种简洁、高效的方式来定位XML文档中的元素和属性,使得开发者能够轻松地解析和操作XML数据。
二、XPath基本写法1. 轴(Axes):XPath 使用轴来确定在XML文档中查找节点的位置。
常见的轴包括:self:当前节点。
parent:当前节点的父节点。
child:当前节点的直接子节点。
descendant:当前节点的所有子孙节点。
2. 节点测试(Node Tests):节点测试用于确定哪些节点匹配路径表达式。
例如,元素节点可以使用标签名进行测试,属性节点可以使用[@attrname]进行测试。
3. 谓词(Predicates):谓词用于进一步过滤匹配的节点集。
它们总是在方括号中使用,并可以包含任何有效的XPath表达式。
4. 运算符:XPath 支持各种运算符,如比较运算符和算术运算符,用于在路径表达式中进行计算。
例如,可以使用=进行比较,使用+进行加法运算等。
5. 函数(Functions):XPath 包含许多内置函数,用于处理字符串、数值、日期和时间等。
这些函数可以在路径表达式中使用,以执行各种计算和转换。
三、示例下面通过一些示例来说明XPath的基本用法:1. 选择特定元素使用//可以选择XML文档中所有的指定元素,例如://book可以选择所有名为book的元素。
如果要选择特定名称的元素,可以使用/运算符,例如:/bookstore/book可以选择名为bookstore的元素的直接子元素名为book的元素。
2. 谓词的使用谓词用于进一步过滤匹配的节点集。
它们总是在方括号中使用,并可以包含任何有效的XPath表达式。
例如,要选择名为bookstore的元素下的第一个book元素,可以使用谓词:/bookstore/book[1]。
xpath元素定位写法XPath元素定位是一种通过路径表达式来定位XML或HTML文档中的元素的技术。
以下是一些XPath元素定位的常见写法:1. 通过元素名称定位:`//elementName`,例如:`//div`,表示查找所有名称为div的元素。
2. 通过元素属性定位:`//elementName[@attributeName='attributeValue']`,例如:`//input[@id='username']`,表示查找所有属性id值为username的input元素。
3. 通过元素文本内容定位:`//elementName[text()='textValue']`,例如:`//a[text()='登录']`,表示查找所有文本内容为“登录”的a元素。
4. 通过元素位置定位:`(//elementName)[position]`,例如:`(//input)[1]`,表示查找第一个input元素。
5. 通过父元素定位子元素:`//parentElement/childElement`,例如:`//div/input`,表示查找div元素下的所有input子元素。
6. 通过元素路径定位:`/parentElement/childElement`,例如:`/html/body/div`,表示查找根元素html下的body下的div元素。
7. 通过元素相对位置定位:`//elementName1/following-sibling::elementName2`,例如:`//input/following-sibling::button`,表示查找input元素后面的所有兄弟元素中的button元素。
8. 通过元素属性包含某些文字定位:`//elementName[contains(@attributeName,'textValue')]`,例如:`//a[contains(@href,'login')]`,表示查找所有href属性值包含“login”的a元素。
xpath的用法
XPath是一种路径表达式语言,用于在XML文档中查找和选取节点。
以下是XPath的用法:
1. 选择节点:
XPath使用路径表达式来选择节点,可以通过节点名称、属性或者位置来进行选择,例如:选择所有的节点://*
选择名称为book的节点://book
选择拥有属性category并且属性值为web的节点:
//@category[.='web']
选择第二个book节点://book[2]
2. 调用函数:
XPath使用函数来操作节点,例如获取节点内容、统计节点数量等等。
一些常用的函数包括:text()用于获取节点文字内容,count()用于统计节点数量,concat()用于合并字符串,substring()用于获取子串等等。
例如:获取第二个book节点的title内容:
//book[2]/title/text()
统计所有book节点数量:count(//book)
3. 进一步筛选节点:
XPath还提供了一些进一步筛选节点的方法,包括比较运算符、逻辑运算符以及通配符。
例如:选择所有价格大于10的book节点:
//book[price>10]
选择第一个同时拥有title和author子节点的book节点:
//book[title and author][1]
选择所有拥有author子孙节点并且作者姓氏为Smith的节点:
//*[author//last='Smith']
通过使用上述方法,我们可以轻松选取XML文档中的节点并进行操作。
xpath的基本语法基于您的要求,我将为您解释XPath 的基本语法,以易于理解的术语进行阐述。
下面是按段落排版的解释:1. XPath 是一种用于在XML 文档中定位和选择节点的语言。
它使用路径表达式来描述节点的位置关系。
2. XPath 表达式由不同的部分组成,每个部分都有特定的语法和含义。
以下是一些常见的XPath 语法:- 节点选择器:用于选择节点的名称。
例如,选择所有的标题节点可以使用表达式`//title`。
- 路径操作符:用于描述节点之间的关系。
例如,`/` 表示根节点,`//` 表示任意位置的节点。
- 谓语:用于进一步筛选节点。
例如,`[@attribute='value']` 表示选择具有特定属性值的节点。
- 轴:用于在文档中的节点之间导航。
例如,`ancestor::node` 表示选择当前节点的所有祖先节点。
3. XPath 还支持一些内置函数,这些函数可以在表达式中使用。
一些常用的函数包括:- `text()`:用于获取节点的文本内容。
- `contains(string1, string2)`:用于检查一个字符串是否包含另一个字符串。
- `count(nodeset)`:用于计算节点集合中的节点数量。
4. XPath 还支持使用运算符来组合和比较表达式。
一些常见的运算符包括:- `|`:用于组合多个表达式的结果。
- `=`:用于比较两个值是否相等。
- `!=`:用于比较两个值是否不相等。
- `and`、`or` 和`not`:用于进行逻辑运算。
5. XPath 还可以在表达式中使用通配符来选择多个节点。
一些常用的通配符包括:- `*`:匹配任意节点。
- `@*`:匹配任意属性节点。
- `node()`:匹配任意类型的节点。
6. 最后,XPath 还支持使用轴来定位节点的位置。
一些常用的轴包括:- `ancestor`:选择当前节点的所有祖先节点。
- `child`:选择当前节点的所有子节点。
xpath表达式的例子XPath表达式是一种在XML文档中定位元素的语言。
通过使用XPath表达式,我们可以轻松地查找和选择XML文档中的特定节点,从而实现对数据的有效处理和提取。
以下是一些XPath表达式的示例:1. 选择所有节点:XPath表达式:"//*"这个表达式可以选择XML文档中的所有节点,不论是元素、属性还是文本节点。
2. 选择特定元素节点:XPath表达式:"//元素名"通过替换“元素名”为实际的元素名称,这个表达式可以选择XML文档中所有具有指定元素名的元素节点。
3. 选择具有特定属性的元素节点:XPath表达式:"//元素名[@属性名='属性值']"这个表达式根据给定的属性名和属性值选择具有特定属性的元素节点。
可以根据实际的属性名和属性值进行替换。
4. 选择具有特定父节点的子节点:XPath表达式:"//父节点名/子节点名"这个表达式可以选择具有特定父节点的子节点。
通过替换“父节点名”和“子节点名”为实际的父节点名称和子节点名称,可以准确选择对应的子节点。
5. 选择具有特定文本内容的节点:XPath表达式:"//节点名[text()='文本内容']"这个表达式可以选择文本内容与给定文本相匹配的节点。
通过替换“节点名”和“文本内容”为实际的节点名称和文本内容,可以选择具有特定文本内容的节点。
XPath表达式是一种强大的工具,用于在XML文档中快速准确地定位所需的节点。
通过灵活运用XPath表达式,我们能够高效地处理XML数据,提取所需的信息。
XPath函数有关数值的函数结果:'Thérèse'fn:string-to-codepoints(string) 根据字符串返回代码点序列。
例子:string-to-codepoints("Thérèse")结果:84, 104, 233, 114, 232, 115, 101fn:codepoint-equal(comp1,comp2) 根据Unicode 代码点对照,如果comp1 的值等于comp2 的值,则返回true。
(/2005/02/xpath-functions/collation/codepoint),否则返回false。
∙fn:compare(comp1,comp2)如果comp1 小于comp2,则返回-1。
如果comp1 等于∙fn:compare(comp1,comp2,collation)comp2,则返回0。
如果comp1 大于comp2,则返回1。
(根据所用的对照规则)。
例子:compare('ghi', 'ghi')结果:0fn:concat(string,string,...) 返回字符串的拼接。
例子:concat('XPath ','is ','FUN!')结果:'XPath is FUN!' fn:string-join((string,string,...),sep) 使用sep 参数作为分隔符,来返回string 参数拼接后的字符串。
例子:string-join(('We', 'are', 'having', 'fun!'), ' ')结果:' We are having fun! '例子:string-join(('We', 'are', 'having', 'fun!'))结果:'Wearehavingfun!'例子:string-join((), 'sep')结果:''∙fn:substring(string,start,len)返回从start 位置开始的指定长度的子字符串。
第一个字符的下∙fn:substring(string,start)标是1。
如果省略len参数,则返回从位置start 到字符串末尾的子字符串。
例子:substring('Beatles',1,4)结果:'Beat'例子:substring('Beatles',2)结果:'eatles'∙fn:string-length(string)返回指定字符串的长度。
如果没有string 参数,则返回当前节∙fn:string-length()点的字符串值的长度。
例子:string-length('Beatles')结果:7∙fn:normalize-space(string)删除指定字符串的开头和结尾的空白,并把内部的所有空白序列∙fn:normalize-space()替换为一个,然后返回结果。
如果没有string 参数,则处理当前节点。
例子:normalize-space(' The XML ')结果:'The XML'fn:normalize-unicode() 执行Unicode 规格化。
fn:upper-case(string) 把string 参数转换为大写。
例子:upper-case('The XML')结果:'THE XML'fn:lower-case(string) 把string 参数转换为小写。
例子:lower-case('The XML')结果:'the xml'fn:translate(string1,string2,string3) 把string1 中的string2 替换为string3。
例子:translate('12:30','30','45')结果:'12:45'例子:translate('12:30','03','54')结果:'12:45'例子:translate('12:30','0123','abcd')fn:escape-uri(stringURI,esc-res) 例子:escape-uri("/test#car", true())结果:"http%3A%2F%%2Ftest#car"例子:escape-uri("/test#car", false())结果:"/test#car"例子:escape-uri ("/~bébé", false())结果:"/~b%C3%A9b%C3%A9"fn:contains(string1,string2) 如果string1 包含string2,则返回true,否则返回false。
例子:contains('XML','XM')结果:truefn:starts-with(string1,string2) 如果string1 以string2 开始,则返回true,否则返回false。
例子:starts-with('XML','X')结果:truefn:ends-with(string1,string2) 如果string1 以string2 结尾,则返回true,否则返回false。
例子:ends-with('XML','X')结果:falsefn:substring-before(string1,string2) 返回string2 在string1 中出现之前的子字符串。
例子:substring-before('12/10','/')结果:'12'fn:substring-after(string1,string2) 返回string2 在string1 中出现之后的子字符串。
例子:substring-after('12/10','/')结果:'10'fn:matches(string,pattern) 如果string 参数匹配指定的模式,则返回true,否则返回false。
例子:matches("Merano", "ran")关于布尔值的函数有关持续时间、日期和时间的函数日期、时间、持续时间的组件提取函数名称说明fn:dateTime(date,time) 把参数转换为日期和时间。
fn:years-from-duration(datetimedur) 返回参数值的年份部分的整数,以标准词汇表示法来表示。
fn:months-from-duration(datetimedur) 返回参数值的月份部分的整数,以标准词汇表示法来表示。
fn:days-from-duration(datetimedur) 返回参数值的天部分的整数,以标准词汇表示法来表示。
fn:hours-from-duration(datetimedur) 返回参数值的小时部分的整数,以标准词汇表示法来表示。
fn:minutes-from-duration(datetimedur) 返回参数值的分钟部分的整数,以标准词汇表示法来表示。
fn:seconds-from-duration(datetimedur) 返回参数值的分钟部分的十进制数,以标准词汇表示法来表示。
fn:year-from-dateTime(datetime) 返回参数本地值的年部分的整数。
例子:year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))结果:2005fn:month-from-dateTime(datetime) 返回参数本地值的月部分的整数。
例子:month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))结果:01fn:day-from-dateTime(datetime) 返回参数本地值的天部分的整数。
例子:day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))结果:10fn:hours-from-dateTime(datetime) 返回参数本地值的小时部分的整数。
例子:hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))结果:12fn:minutes-from-dateTime(datetime) 返回参数本地值的分钟部分的整数。
例子:minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))结果:30fn:seconds-from-dateTime(datetime) 返回参数本地值的秒部分的十进制数。
例子:seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10"))结果:0fn:timezone-from-dateTime(datetime) 返回参数的时区部分,如果存在。
fn:year-from-date(date) 返回参数本地值中表示年的整数。
例子:year-from-date(xs:date("2005-04-23"))结果:2005fn:month-from-date(date) 返回参数本地值中表示月的整数。
例子:month-from-date(xs:date("2005-04-23"))结果:4fn:day-from-date(date) 返回参数本地值中表示天的整数。