XPath 节点关系
2025-04-23
19
参考资料
XPath 节点关系
1. 父节点(Parent)
定义:每个元素或属性都有一个父节点。
属性:
parent::
轴或/..
简写。用法:选择当前节点的直接父节点。
示例:
//book/.. <!-- 选择所有book元素的父节点 -->
2. 子节点(Children)
定义:直接位于某节点下的元素。
属性:直接使用
/
或child::
轴。用法:选择当前节点的直接子节点。
示例:
//bookstore/book <!-- 选择bookstore的所有book子元素 -->
3. 兄弟节点(Sibling)
定义:拥有相同父节点的节点。
属性:
following-sibling::
或preceding-sibling::
轴。用法:选择同级的前驱或后继节点。
示例:
//book/following-sibling::book <!-- 选择book之后的所有兄弟book节点 -->
4. 祖先节点(Ancestor)
定义:从当前节点到根节点的所有上级节点。
属性:
ancestor::
轴。用法:选择所有祖先节点。
示例:
//book/ancestor::bookstore <!-- 选择book的所有bookstore祖先 -->
5. 后代节点(Descendant)
定义:当前节点下的所有子节点、孙节点等。
属性:
descendant::
轴或//
简写。用法:选择所有后代节点。
示例:
//bookstore//title <!-- 选择bookstore下所有层级的title元素 -->
6. 属性节点(Attribute)
定义:元素的属性。
属性:
attribute::
轴或@
简写。用法:选择元素的属性。
示例:
//book/@lang <!-- 选择所有book元素的lang属性 -->
7. 自身节点(Self)
定义:当前节点自身。
属性:
self::
轴或.
简写。用法:选择当前节点。
示例:
//book/self::node() <!-- 选择所有book节点自身 -->
8. 命名空间节点(Namespace)
定义:XML命名空间。
属性:
namespace::
轴。用法:选择命名空间节点(较少使用)。
示例:
//book/namespace::* <!-- 选择book元素的命名空间节点 -->
综合示例
假设XML结构如下:
<bookstore> <book lang="en"> <title>XPath Guide</title> <author>John</author> </book> <book lang="fr"> <title>XML Basics</title> <price>30</price> </book> </bookstore>
选择所有
title
的父节点://title/..
选择第一个
book
的后继兄弟://book[1]/following-sibling::book
选择
author
的所有祖先://author/ancestor::*
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。