XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。
XPath轴(XPath Axes)可定义某个相对于当前节点的节点集:
1、child 选取当前节点的所有子元素
2、parent 选取当前节点的父节点
3、descendant 选取当前节点的所有后代元素(子、孙等)
4、ancestor 选取当前节点的所有先辈(父、祖父等)
5、descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身
6、ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身
7、preceding-sibling 选取当前节点之前的所有同级节点
8、following-sibling 选取当前节点之后的所有同级节点
9、preceding 选取文档中当前节点的开始标签之前的所有节点
10、following 选取文档中当前节点的结束标签之后的所有节点
11、self 选取当前节点
12、attribute 选取当前节点的所有属性
13、namespace 选取当前节点的所有命名空间节点
descendant选取当前节点的所有后代元素(包括子节点、子孙节点…),descendant (后代)轴包含上下文节点的后代,一个后代是指子节点或者子节点的子节点等等。
/descendant::* 选择文档根元素的所有后代.即所有的元素被选择
- <AAA>
- <BBB>
- <DDD>
- <CCC>
- <DDD/>
- <EEE/>
- </CCC>
- </DDD>
- </BBB>
- <CCC>
- <DDD>
- <EEE>
- <DDD>
- <FFF/>
- </DDD>
- </EEE>
- </DDD>
- </CCC>
- </AAA>
/AAA/BBB/descendant::* 选择/AAA/BBB的所有后代元素
- <AAA>
- <BBB>
- <DDD>
- <CCC>
- <DDD/>
- <EEE/>
- </CCC>
- </DDD>
- </BBB>
- <CCC>
- <DDD>
- <EEE>
- <DDD>
- <FFF/>
- </DDD>
- </EEE>
- </DDD>
- </CCC>
- </AAA>
//CCC/descendant::* 选择所有CCC元素的所有后代元素
- <AAA>
- <BBB>
- <DDD>
- <CCC>
- <DDD/>
- <EEE/>
- </CCC>
- </DDD>
- </BBB>
- <CCC>
- <DDD>
- <EEE>
- <DDD>
- <FFF/>
- </DDD>
- </EEE>
- </DDD>
- </CCC>
- </AAA>
//CCC/descendant::DDD 择所有以CCC为祖先元素的DDD元素
- <AAA>
- <BBB>
- <DDD>
- <CCC>
- <DDD/>
- <EEE/>
- </CCC>
- </DDD>
- </BBB>
- <CCC>
- <DDD>
- <EEE>
- <DDD>
- <FFF/>
- </DDD>
- </EEE>
- </DDD>
- </CCC>
- </AAA>