第6讲XPath.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6讲XPath

XPath XPath的概念和作用 XPath节点的分类 绝对路径和相对路径 XPath的各种基本语法 XPath支持的运算符、算术表达式、比较表达式、逻辑表达式 XPath2.0的for、if、some/every表达式 XPath2.0的类型支持 内置函数 在XSLT中的XPATH路径 XPath语言简介(2-1) XPath将一个XML文档看成一棵树,文档中的每一个部分都对应树上的一个节点。 节点类别:XML文档根节点(“/”)、元素节点、属性节点、处理指令节点、注释节点、命名空间节点(xmlns:prefix属性)、文本节点 节点关系:父节点、子节点、兄弟节点、祖先节点、后代节点 除根节点外的其他节点都有一个父节点,父节点可以有任意多个子节点或派生的节点。 子节点的类型只能是元素、注释、文本和处理指令节点类型。尽管属性或命名空间节点的父节点可以是元素或根结点,但属性或命名空间节点不是其父节点的子节点。父节点和子节点是一种包含关系,而属性节点和名空间节点是一种描述。 XPath语言简介(2-2) 定位和导航XML节点——路径表达式 XPath路径是字符串表达式 运行表达式后产生4种数据类型:节点集、布尔值、字符串和数值。 绝对路径和相对路径 绝对路径从磁盘根路径开始,在任何位置总是指向相同的文件夹或文件。 XPath绝对路径:以斜线/开头,如: /list/book 相对路径需要依赖于当前路径(或者称为基路径),该路径具体指向哪个文件无法确定,它会随着基路径的改变而改变。如:list/book。 XPath基础语法 XPath语言使用路径表达式来定位XML文档中的节点或节点集,每个XPath表达式总由多个步step组成,多个步之间用斜线分隔。 例如:/list/book/name表示list…/根元素下book…/子元素所包含的name…/子元素 XPath中步的完整语法格式: 轴::节点测试[限定谓词] 例如:child::student[attribute::ID=?101?] 轴axis 轴:定义所选节点与当前节点之间的结构关系。 轴类型: ancestor ancestor-or-self attribute child descendant descendant-or-self following following-sibling namespace parent preceding preceding-sibling self 注意:? ancestor,descendant,following,preceding 以及 self 轴划分了一个文档(忽略属性和命名空间节点):他们相互不重叠,而且他们组在一起则包含了文档所有的节点。 节点测试node-test 轴从文档树中选择一组节点,节点测试可以识别某个轴内部的节点,可以在轴所选取的节点集中做进一步的筛选。 节点测试作用:用于从指定轴所匹配的节点集中选出特定的节点。 节点测试: nodename node() text() comment() processing-instruction * 限定谓语predicate 用于进一步提炼所选的节点集。每个步中可以接受零个或更多限定谓语,限定谓语放在方括号中,是一个boolean表达式,当表达式为真时选择该节点,否则不选择。 例如: xsl:if test=元素名称[.=元素内容] xsl:if test=“@属性名称[.=属性值] 简化写法 省略child轴 使用@符号代替attribute轴 使用双斜线//代表后代节点 使用一个点.代表当前节点 使用两个点..代表上一级节点 运算符和表达式(2-1) 算术运算符:+ - * div mod 主要用于对数值进行计算,要求所有的操作数都可以转换为数值。XPath里的所有数值都是double类型。支持几个特殊数值:正无穷大(正数除以0),负无穷大(负数除以0),非数NaN(Not a Number)(0除以0)。 字符串转换为数值规则:XPath先截去字符串前后空白,然后将其转换为数值,数值字符串转换为数值,非数值字符串转换为NaN。 true转换为1,false转换为0 节点集表达式,XPath先将其转换为字符串,再按字符串转换规则处理。 规定:abc-xyz表示计算abc-xyz元素的值, abc – xyz表示计算abc元素值与xyz元素值之间的差。 运算符和表达式(2-2) 比较运算符:= != = = 逻辑运算符:or或 and与 XPath允许将任意类型的值当成boolean值处理,即XPath会自动将各种类型的值转换为boolean值,

文档评论(0)

shuwkb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档