0%

XPath语言

XPath语言

XPath语言是一门专门用于在XML文档中查找信息的语言,可以与其他XML解析工具来结合,使用路径表达式来选取XML文档中的节点或者节点集

XPath节点

XPath中的节点类别有

  • XML 文档根节点
  • 元素节点
  • 属性节点
  • 处理指令节点
  • 注释节点
  • 命名空间节点
  • 文本节点

语法

XPath语言使用路径表达式来定位XML文档中的节点或节点集

每个XPath表达式是由多个步组成的,多个步之间用斜线分隔

如/mapper/resultMap/id表示的是mapper根元素下resultMap子元素中包含的id子元素

步的语法

步由三部分组成,其语法格式为

1
轴::节点测试[限定谓语]

用于定义所选节点与当前节点之间的结构关系,如父子、后代等

ancestor 选取当前节点的所有先辈(父、祖父等)。
ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身。
attribute 选取当前节点的所有属性,可用@符号代替
child 选取当前节点的所有子元素,默认轴,可省略
descendant 选取当前节点的所有后代元素(子、孙等),可用//代替
descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身。
following 选取文档中当前节点的结束标签之后的所有节点。
namespace 选取当前节点的所有命名空间节点。
parent 选取当前节点的父节点,可用..代替
preceding 选取文档中当前节点的开始标签之前的所有节点。
preceding-sibling 选取当前节点之前的所有同级节点。
self 选取当前节点,可用.代替
节点测试

用于选取指定轴内部的部分节点

nodename 从指定轴匹配所有节点中选出具有nodename的节点
node() 选择指定轴匹配的所有类型的节点
text() 选择指定轴匹配的所有文本类型的节点
comment() 选择指定轴匹配的所有注释节点
processing-instruction 选择指定轴匹配的所有处理指令节点
* 节点测试的通配符,用于指定不对指定轴进行任何过滤
限定谓语

用于对轴和节点测试所匹配的节点集进行进一步限定,每个步中可以接受零个或多个限定谓语,放在方括号中,限定谓语是一个boolean表达式

1
child:book[position()=1]

欢迎关注我的其它发布渠道