从JS到AJAX-11XPATH_第1页
从JS到AJAX-11XPATH_第2页
从JS到AJAX-11XPATH_第3页
从JS到AJAX-11XPATH_第4页
从JS到AJAX-11XPATH_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、nXPath中对元素和属性的匹配,主要有以下几种: n选择分支 n定位节点 n选择未知元素 n选择属性 nXPath语法主要是关于一下几方面: nXPath表达式 nXPath中对元素和属性的匹配nXPath定位路径 nXPath函数库 n每个XML文档都可看成是一棵树,该树与计算机中的树形文件夹非常类似,XPath使用以斜线分隔的子元素名的列表来描述某个XML文档的路径所匹配的元素。 n/class/studentn表示选择“class”元素下所有的“student”元素 n/class/student/namen表示选择“class”元素下所有的“student”元素 n/class/st

2、udent/*n用于选择“class”元素下所有的“student”元素的所有子元素 n/class/*/namen用于选择“class”元素下所有的子元素下的所有“name”元素 n/*/*/namen用于选择具有两个祖先的所有“name”元素 n/*n用于选择该文档中的所有元素 n在实际应用中我们经常会使用通配符“*”来选择未知的XML元素。如下:n通过在XPath语句中使用中括号“ ”可以进一步指定某个元素。在中括号中可以使用各种函数、数值、表达式等来指定某个符合条件的元素。如下:n/class/student1 n选择“class”元素下的第一个“student”子元素 n/class

3、/studentagen选择“class”元素下含有“age”元素的所有“student”元素 n/class/studentage=20n选择“class”元素下“student”元素中的“age”元素值为20的所有“student”元素 n/class/studentage=20/namen选择“class”元素下的“age”元素值为20的所有“student”元素下的所有“name”元素 n/class/studentlast()n选择“class”元素下的最后一个“student”子元素 n通过在XPath语句中使用“|”操作符来选择多个路径。如下:n/class/student/na

4、me | /class/teacher/namen表示选择“class”元素下“student”元素中的所有“name”元素和“class”元素下“teacher”元素中的所有“name”元素 n/name | /age | /emailn选择文档中所有的“name”元素、“age”元素和“email”元素 n/name | /class/student/age n选择文档中所有的“name”元素和“class”元素下“student”元素中的所有“age”元素n在XPath语法中,要获得属性信息必须以前缀“”来指定,如下 :n/ idn表示选择所有属性名为“id”的属性 n/class/st

5、udent idn表示选择“class”元素下包含有“id”属性的所有“student”元素 n/class/student *n表示选择“class”元素下包含有属性的所有“student”元素 n/class/student id= ADR02n表示选择“class”元素下包含有“id”属性的值为“ADR02”的所有“student”元素 10n一个XPath定位路径表达式将返回一个符合条件的节点集。n定位路径可以是相对路径,也可以是绝对路径。绝对定位路径以一个斜线“/”开头,而相对定位路径则没有。定位路径是由一个或多个定位步骤组成,每个步骤用一个斜线分隔。 n定位绝对路径的表达式如下所示

6、:n/class/student/namen定位相对路径的表达式如下所示:nclass/student/namen定位步骤按照顺序从左到右依次求值。每一个定位步骤都是相对于上下文节点集中的节点进行求值的。n一个定位路径由若干个定位步骤组成。 n一个定位步骤一般有三部分: n一个轴,它指定了定位步骤选择的节点与上下文节点之间的关系。 n一个节点测试,它指定定位步骤选择的节点的节点类型以及节点扩展名。 n零个或零个以上的判定语句,它使用专有的表达式进一步细化定位步骤选择的节点集合。 n定位步骤的语法是由两个冒号分开的轴名和节点测试组成,其后可跟随零个或零个以上在方括符内的表达式。 nchild:a

7、geage=20n轴名n一般格式如下:n判定语句n节点测试n用到的轴主要有以下几种 :lchild:当前节点所有的子节点。例如:child:*表示选择当前节点的所有子元素child:text()表示选择当前节点的文本节点。child:node()表示选择当前节点的所有子节点。ldescendant:该轴包含该节点的后裔;后裔是一个孩子或一个孩子的孩子,等等,后裔轴从来不包含属性或命名空间节点。例如:descendant:name表示选择当前节点的后代中所有name元素。lparent:当前节点的所有父节点。lancestor:该轴包含该节点的所有祖先节点,该节点的祖先由该节点的父节点以及父节点

8、的父节点等组成。这样,祖先轴将总是包括根节点,除非该节点是根节点;例如:ancestor:age表示选择当前节点的祖先节点中所有的age元素。lfollowing-sibling:包含该节点的所有在其后的兄弟,如果该节点是属性节点或命名空间节点,following-sibling 则为空。lpreceding-sibling:包含该节点的所有在其前的兄弟,如果该节点是属性节点或命名空间节点,则preceding-sibling轴为空。lfollowing:包含在该节点所在的同一文档中,所有依照文档顺序在该节点后的节点,但排除所有的后裔,也排除属性节点以及命名空间节点。lpreceding:包含

9、在该节点所在的同一文档中,所有依照文档顺序在该节点前的节点,但排除所有的后裔,也排除属性节点以及命名空间节点。lattribute:包含该节点的属性,除非该节点是元素,该轴将为空。例如:attribute:* 表示选择当前节点的所有属性。lnamespace:包含该节点的命名空间节点,除非该节点是元素,该轴将为空。lself:只包含该节点本身。nl l ancestor-or-self:包含该节点和该节点的祖先;这样该轴将总是包括根节点。ldescendant-or-self:包含该节点和该节点的后裔。n节点测试是一个条件,并且是路径表达式中定位步骤的第二个组件。在该轴中选定的所有节点都必须满

10、足此条件。有以下两种 n以节点名作为节点测试 n以节点类型作为节点测试 n有如下的路径表达式 :n/child:name n以节点名“name”作为节点测试 nchild: text() n以节点类型作为节点测试 n主要节点类型有: nnode( ):任何类型的节点。 nprocessing-instruction( ):处理指令节点。 ntext( ):文本类型节点。 ncomment( ):表示注释节点。 1920nXPath除了定位路径表达式外,还有许多其它的基本表达式结构,包括布尔、等式、关系和数值表达式。它们通常用于XPath谓词和各种XSLT结构中。 n关系表达式 n数值表达式 n

11、数值表达式的运算符主要包括:加(+)、减(-)、乘(*)、除(div)和取模(mod)。n一般格式如下:n操作数1 运算符 操作数2运算符作用=判断两个数值是否相等!=判断操作数1是否不等于操作数2<小于<=小于等于>大于>=大于等于or或and和n关系表达式主要用于对两个值的比较,其中主要的运算符及其用法如表所示: nXPath提供了函数库以方便计算表达式。我们可以使用XPath函数改进XPath的查询,并提高XPath的编程能力和其灵活性。 nXPath函数库中的函数主要分为 n字符串函数 n节点集函数 n布尔函数 n数值函数 n注意

12、:使用XPath函数时必须严格区分函数名的大小写和参数信息。lcount( ):该函数返回被选元素的数目。lid( ):通过元素的唯一ID选择元素。llast( ):返回最后一个节点是第几个节点。llocal-name( ):返回节点集中第一个节点的local name。lname( ):返回元素的元素名。lnamespace-uri( ):返回节点集中第一个节点的命名空间URI。nl l position( ):返回被选元素是第几个节点。2526l concat( ):返回字符串连接的结果。l contains( ):如果第一个字符串包含第二个字符串,则返回真,否则返回假。l normali

13、ze-space( ):返回去除了前后空白以及重复空白的参数字符串。l starts-with( ):如果第一个字符串以第二个字符串开头则返回真,否则返回假。l string( ):将对象转换为字符串。l string-length( ):返回一个字符串的长度。l substring( ):返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的字符串l substring-after( ) :返回字符串中从开始到某一字符串第一次出现的位置后的字符串。n数值函数主要有以下几种: l ceiling( ):返回不小于参数的最小整数。l floor( ):返回不大于参数的最大整数。l number( ):将参数转换为数字。l round( ):返回与参数最接近的整数值。l l sum( ):返回节点集中所有节点的总和。每个节点在求和之前先转换为数值。 n如:nceiling(4.3)将返回4。nround(4.7)将返回5 nsum(class/student/money)返回学生的钱数的总和n布尔函数主要用于对参数表达式进行计算,并返回结果。有如下几种: l boolean():将参数转换为布尔值。 如果参数是负数或正数,将转换为布尔值true。 如果参数为零或NaN值,将转换为false。 如果参数为非空的节点集

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论