`
smiky
  • 浏览: 257739 次
  • 性别: Icon_minigender_1
  • 来自: 天门
社区版块
存档分类
最新评论

xpath的一点笔记

阅读更多

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <person lang="cn">
        <name>smiky</name>
        <age>20</age>
        <sex>boy</sex>
    </person>
    <person lang="en">
        <name multiple="true">欧阳疯</name>
        <age>24</age>
        <sex>girl</sex>
    </person>
</root>
<!--
*XPath的七种节点类型:
*元素,属性,文本,文档节点(即根节点),命名空间,注释,处理指令
*
*节点关系:
*父、子、兄弟、先辈、后代
*
*Xpath常用符号:
*/ 从根节点开始选
*// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 (example://name,会选择两个name元素,不考虑name元素出现在那)
*. 当前节点
*..父节点
*| 表示或 (example: //person[1] | person[2] 会选择两个person)
*@ 选取属性 (example: //@multiple 会选取<name multiple="true">欧阳疯</name>中的值true)
*      * 用于匹配任意元素
*      @*用于匹配任意属性
*node()匹配任意节点(//person/age/node())
*text()匹配文本节点(//person/age/text())
//node()与text()相关于一个节点来使用
*last()匹配最后一个节点 (//person[last()-1]匹配倒数第二个person)
*position()匹配某个位置(如//person[position=1]选择第一个person)
//last()与position看样子只能在谓语中使用
*
*
*XPath的12个轴:
*ancestor 父辈(包括父节点及祖父等)
*ancestor-or-self 相对于ancestor多了它自身
*descentdant 后辈(包括子节点及孙节点)
*descentdant-or-selt 相对于descendant多了它自身
*attribute 选择当前节点的属性
*child 选取当前节点的子节点
*parent 选择当前节点的父节点
*self 选择当前节点
*namesapce 选取当前节点的所有命名空间节点
*following 选择当前节点标签结束之后的所有节点(如//person[1]/following::*,不仅会选第二个person,还会选person[2]中的name,age,sex)
*preceding 与following相反,选择当前节点开始之前的所有节点
*preceding-sibling 选择preceding的兄弟节点
*
*轴的使用:
*//person[2]/ancestor-or-self::*[1]
*                 轴         ::轴中对应的节点[谓语(进一步选择)]  
*
*XPath运算符
*|,+,-,div(除),mod,*(乘法),>,>=,<,<=,=,!=,and,or
*运算符好像只能用在谓语里面对节点进行进一步的过滤

//person[age>=20 and age=24] 根据子元素的值选择
//person[@lang="cn"] 根据属性选择

    1. /bookstore/book/@category
    2. /bookstore/book[@category]
这两者之间的区别:1选取的是一个属性节点,2选取的是具有category属性的book,2中属性只是谓语,用于限定选取结果


XSLT常用元素:
<xsl:template match="/"></xsl:template>
<xsl:value-of select=""/>
<xsl:for-each select="" ></xsl:for-each>
<xsl:sort select=""/>
<xsl:if test=""></xls:if>
<xsl:choose>
    <xsl:when test="age>23"></xsl:when>
    <xsl:when test="age>20"></xsl:when>
    <xsl:otherwise></xsl:otherwise>
</xsl:choose>
这里相当于:
if(age>23){

}else if(age>20){

}else{

}

<xsl:apply-templates />


XQuery:
XQuery 使用函数来提取 XML 文档中的数据。
doc() 用于打开 "books.xml" 文件:
doc("books.xml")/bookstore/book[price>30],XQuery 使用谓语来限定从 XML 文档所提取的数据

FLWOR:
for 语句把 bookstore 元素下的所有 book 元素提取到名为 $x 的变量中。(测试过,变量名前要加$,不加报错)
where 语句选取了 price 元素值大于 30 的 book 元素。
order by 语句定义了排序次序。将根据 title 元素进行排序。
return 语句规定返回什么内容。在此返回的是 title 元素。

for, let, where, order by, return
for $book in doc("books.xml")/bookstore/book
where $book/price>30
order by $book/price
return $book/title

for $book in doc("books.xml")/bookstore/book
order by $book/price
return $book/title

<ul>
{
for $x in doc()/bookstore/book/title
order by $x
return <li>{data($x)}</li>//data($x)用于获取$x的值,必须用{}括起来,不然就会原样输出data($x)
}
</ul>
可以看出XQuery用{}来区分代码与非代码部分(如同JSP中的<%%>)
当代码与非代码连接时一定要用{}括起代码部分,否则XQuery将全部当成非代码处理(即当字成符),对于只有代码的话不用括起来

XQuery 的基础语法规则:
一些基本的语法规则:
•XQuery 对大小写敏感
•XQuery 的元素、属性以及变量必须是合法的 XML 名称。
•XQuery 字符串值可使用单引号或双引号。
•XQuery 变量由 “$” 并跟随一个名称来进行定义,举例,$bookstore
•XQuery 注释被 (: 和 :) 分割,举例,(: XQuery 注释 :)

XQuery注意事项:
XQuery返回的要么只有数据,要么是有正常开始结束标签的字符串(<abc>123</abc>,这样<abc>123会报错)
可以出现这种结果:
<abc>123</abc>
    123
<abc>123</123>

并且在只有代码时不能用{}括着代码
如:{doc()/bookstore/book}会报错
-->








分享到:
评论

相关推荐

    xpath学习笔记 比较入门大家共享

    XPath,全称为XML Path Language,是一种在XML文档中查找信息的语言。它被广泛应用于XML处理,如XSLT、XQuery以及XPointer等标准中。XPath通过路径表达式来选取XML文档中的元素、属性或其他类型的节点,使得我们可以...

    (完整版)python+xpath笔记.docx

    ### Python与XPath结合应用知识点详解 #### 一、XPath简介 XPath是一种在XML文档中查找信息的语言。尽管这里讨论的是HTML文档(通常由浏览器解析),但XPath同样适用,并且经常被用于网页抓取等场景中。XPath...

    Dom4j 解析Xml文档及 XPath查询 学习笔记

    **标题:** Dom4j 解析Xml文档及 XPath查询 学习笔记 **正文:** XML(eXtensible Markup Language)是一种标记语言,常用于数据交换、配置存储以及文档结构化表示。在Java世界中,解析XML文档有多种库,其中Dom4j是...

    Xpath生成器,自动生成XPATH,C#版

    XPath(XML Path Language)是一种在XML文档中查找信息的语言,它是W3C组织制定的一种标准查询语言,用于选取XML文档中的节点,包括元素、属性、文本等。在本项目“Xpath生成器,自动生成XPATH,C#版”中,开发者...

    IE下获取XPATH小工具源码_xpath_

    XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,如元素、属性、文本等。在IE浏览器下,为了方便开发者获取XML或HTML文档中的XPath路径,存在一种小工具,本文将...

    XPath Helper版本2.0.2

    XPath Helper是一款非常实用的工具,尤其对于Web开发者和数据抓取者来说,它极大地简化了在网页中查找和提取信息的过程。版本2.0.2是这个插件的一个更新,旨在提供更稳定、高效的功能。XPath(XML Path Language)是...

    Xpath指南XPATH实例

    XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,包括元素、属性、文本等。XPath基于W3C标准,为XML处理提供了一种强大而灵活的方式。以下是对“XPath指南”中...

    谷歌浏览器XPath2.0插件

    XPath(XML Path Language)是一种在XML文档中查找信息的语言,它允许我们通过路径表达式来选取节点,比如元素、属性和文本等。XPath 2.0是XPath的第二个主要版本,增加了更多的功能和优化。 在没有XPath Helper的...

    Xpath生成器,自动生成可用的Xpath。

    Xpath生成器,可以通过输入的文件,进行匹配,生成全部可用的Xpath,犹豫HTML中部分标签允许无结束,如:("LINK" ,"META","SCRIPT","IMG" ,"INPUT", "FORM")故已经被忽略,如有朋友发现其中有问题,请告诉我哦...

    xpath-helper.zip

    本压缩包文件"xpath-helper.crx"很可能是一个Chrome浏览器的扩展程序,旨在提供实时的XPath查询支持。 XPath(XML Path Language)是一种在XML文档中查找信息的语言,它允许我们通过路径表达式来选取节点,如元素、...

    (完整版)python+xpath笔记.doc

    XPath 语法详解 XPath(XML Path Language)是一种用于选择 XML 文档中节点的语言。它提供了一种灵活的方式来定位 XML 文档中的节点,支持多种节点选择方式,例如通过节点名称、属性、值等。 选择节点常用的路劲...

    XPath教程

    XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,包括元素、属性、文本等。XPath基于W3C标准,其1.0版本是XPath语言的基础,提供了强大的查询和导航功能。本教程...

    XPathHelper_2.0.2_xpath_

    XPathHelper 2.0.2 版本专注于XPath的查询与应用,特别适合于Web自动化测试和网页数据抓取。 XPath在Web开发中的主要用途有以下几点: 1. **元素定位**:XPath允许开发者通过路径表达式来选取XML或HTML文档中的...

    XPathHelper_2.0.2.zip

    XPathHelper_2.0.2.zip 是一个包含XPath Helper Chrome扩展程序的压缩文件,版本为2.0.2。XPath Helper是一款非常实用的工具,它专为Chrome浏览器设计,帮助开发者和网页爬虫工程师高效地测试和调试XPath表达式。...

    xpath定位,xpath定位,xpath定位

    Selenium xpath,

    xpath-helper 插件及使用方法

    XPath Helper是一款强大的Chrome浏览器插件,专为网页元素定位和数据提取而设计。它使得开发者和数据抓取者能够方便地生成和测试XPath表达式,从而高效地在HTML文档中定位所需信息。XPath(XML Path Language)是一...

    火狐老版本+xpath插件(适合python+xpath爬虫使用)

    火狐老版本与XPath插件的组合在Python网络爬虫领域具有重要的应用价值。XPath是一种在XML文档中查找信息的语言,对于数据提取和解析尤其有效。在这个压缩包中,我们找到了火狐的老版本浏览器和一个专门针对XPath的...

    xpath的jar包

    XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来允许对XML文档中的元素、属性和其他节点进行快速定位。XPath使用路径表达式来选取XML文档中的节点,这些路径表达式类似于我们在文件...

    XPath 测试工具 快速XPath测试

    XPath(XML Path Language)是一种在XML文档中查找信息的语言,它是W3C推荐的标准,用于选取XML文档中的节点,如元素、属性、文本等。XPath测试工具是开发者用来验证和调试XPath表达式的重要辅助手段,它能够快速地...

    xml解析笔记(dom,xpath,xquery等)

    这篇笔记将围绕XML的解析方法,重点讨论DOM、XPath和XQuery这三种解析技术。 **DOM(Document Object Model)解析:** DOM是W3C推荐的一种XML文档的API,它将XML文档视为一个树形结构,每个节点代表XML文档的一个...

Global site tag (gtag.js) - Google Analytics