当使用XPath时,以下是一些常用的表达式和语法的备忘单:

基本语法:

  •  /:从根节点开始选择。
  /bookstore

  •  //:选择匹配的节点,而不考虑其位置。
  //book

  •  .:当前节点。
  ./title

  •  ..:父节点。
  ../author

  •  *:通配符,匹配任何元素节点。
  /bookstore/*

谓词(Predicates):

  •  [@attribute='value']:选择具有特定属性值的节点。
  /bookstore/book[@category='fiction']

  •  [position()]:选择特定位置的节点。
  /bookstore/book[position()=1]

运算符:

  •  +, -, *, /, %:数值运算符。
  /bookstore/book/price * 2

  •  =, !=, <, >, <=, >=:比较运算符。
  /bookstore/book/price > 20

  •  and, or, not:逻辑运算符。
  /bookstore/book/price > 20 and /bookstore/book/price < 30

轴(Axes):

  •  child:::子轴,选择当前节点的所有子元素。
  /bookstore/child::book

  •  parent:::父轴,选择当前节点的父节点。
  /bookstore/book/title/parent::book

  •  attribute:::属性轴,选择当前节点的所有属性。
  /bookstore/book/attribute::category

  •  namespace:::命名空间轴,选择当前节点的所有命名空间节点。
  /bookstore/book/namespace::*

  •  ancestor:::前代轴,选择当前节点的所有祖先节点。
  /bookstore/book/title/ancestor::bookstore

  •  descendant:::后代轴,选择当前节点的所有后代节点。
  /bookstore/descendant::title

  •  preceding-sibling:::同级轴,选择当前节点之前的所有同级节点。
  /bookstore/book/title/preceding-sibling::book

  •  following-sibling:::同级轴,选择当前节点之后的所有同级节点。
  /bookstore/book/title/following-sibling::book

一些函数:

  •  string(): 将节点的值转换为字符串。
  string(/bookstore/book/price)

  •  concat(): 连接多个字符串。
  concat(/bookstore/book/title, ' - ', /bookstore/book/author)

  •  contains(): 判断字符串是否包含指定子字符串。
  contains(/bookstore/book/title, 'XML')

  •  count(): 计算节点集的节点数量。
  count(/bookstore/book)

  •  sum(): 计算节点集中数值的总和。
  sum(/bookstore/book/price)

这个备忘单涵盖了XPath的一些基本语法、运算符、轴和函数,可以作为使用XPath时的快速参考。


转载请注明出处:http://www.zyzy.cn/article/detail/12190/XML