XPath学习记录——part 2

.Xpath的语法

   1,以“/”开头的XPath表达式为绝对路径,从文档节点开始;否则为相对路径表达式,从当前结点开始。

   2,可以使用“//”表示当前节点下的所有元素;若以“//”开头,则表示文档中所有的元素  EX.“//section”表示文档中所有的section元素

  3,满足一个XPath路径表达式的节点可能有多个。

 

位置路径表达式分为先对位置路径表达式和绝对位置路径表达式,绝对位置路径表达式以“/”开头,后跟相对位置路径表达式或是简写的绝对位置路径表达式;相对位置路径表达式由多个步进(step)构成EX.step1/step2/step3

每个step由三个部分组成,轴标识符+节点测试+零个或多个判定谓词

   (1)关系轴标识符

      共有13种,每一种关系轴表示从当前节点出发向某个方向进行查找。

      ancestor:XML文档树中,查找从文档节点到当前节点所经过的路径上的所有节点,不包括当前节点。

      ancestor-or-self:表示ancestor关系轴查找结果,加上当前节点。

      descendant:表示以当前节点为根的子树中所有节点,不包括当前节点。

      descendant-or-self:表示descendant关系轴查找结果,加上当前节点。

      child:表示查找当前节点所有的子节点。

      parent:表四查找当前节点的父节点。

      following:表示查找当前节点之后的节点,换句话说,这些节点的开始标记和结束标记都在当前节点结束标记之后。

      preceding:表示查找当前节点之前的节点,换句话说,这些节点的开始标记和结束标记都在当前节点开始标记之前。

      following-sibling:表示查找当前节点后的兄弟节点。

      preceding-sibling:表示查找当前节点前的兄弟节点。

      self:查找当前节点本身。

      namespace:查找当前节点命名空间。

      attribute:查找当前节点的属性。

      使用关系轴时应在关系轴名称后面加上“::”。

 

    (2)节点测试

      节点测试NodeTest可以是名称测试或者类型测试。

      名称测试表示根据指定的名称对当前节点进行测试,类型测试则允许根据节点的类型以及在Schema中定义的数据类型进行测试(仅适用于元素和属性节点)。

     可使用通配符“*”,可以匹配所有的元素节点  EX./library/book/*  表示book中所有的子元素节点,不管节点的具体名称是什么。

 

    (3)判定谓词

      判定谓词使用方括号[…]的形式进行表示,用于对指定关系轴的,满足节点测试的所有节点,使用判定谓词中规定的条件进行筛选。如果判定谓词部分为一个整数i,表述选择序列中的第i个元素。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章