XPath:修订间差异

(创建页面,内容为“XPath即为XML路径语言(XML Path Language),它是一种查询语言,用来选取XML文档中的内容。XPath是万维网联盟(W3C)标准。 ==…”)
 
无编辑摘要
第32行: 第32行:
===轴描述===
===轴描述===
轴描述,通过XML文件分支树的浏览方向定位。  
轴描述,通过XML文件分支树的浏览方向定位。  
{| class="wikitable"
|-
! 轴名称 !! 描述 !! 示例
|-
| attribute || 选取元素的属性,可使用<code>@</code>来缩写 || <code>/bookstore/book/attribute::price</code>
|-
| child || 子节点,选取当前元素的所有子元素,可以省略不写。 || <code>/bookstore/book</code>  <br /><code>/bookstore/child::text()</code> 选取当前节点的所有文本子节点。
|-
| parent || 父节点,选取当前元素的父元素,可以用 <code>..</code> 来缩写 || <code>/bookstore/parent::node()</code>
|-
| ancestor || 祖先节点,选取当前元素的所有祖先元素,按层级从近到远 || <code>/bookstore/book/ancestor::bookstore</code>
|-
| ancestor-or-self || 自身及祖先节点,选取当前元素的所有祖先元素以及自身,按层级从近到远 || <code>/bookstore/book/ancestor-or-self::bookstore</code>
|-
| following-sibling || 之后同级节点,选取当前元素之后的所有同级元素 || <code>/bookstore/book/following-sibling::book</code>
|-
| preceding-sibling || 之前同级节点,选取当前元素之前的所有同级元素 || <code>/bookstore/book/preceding-sibling::book</code>
|-
| following || 下文节点,在此节点后的所有完整节点,即不包含其祖先节点 || <code>/bookstore/book/following::book</code>
|-
| preceding || 前文节点,在此节点前的所有完整节点,即不包含其子孙节点 || <code>/bookstore/book/preceding::book</code>
|-
| descendant || 选取当前元素的所有后代元素,按层级从近到远 || <code>/bookstore/descendant::book</code> 选取当前节点的所有 book 后代。
|-
| descendant-or-self || 选取当前元素的所有后代元素以及自身,按层级从近到远 || <code>/bookstore/descendant-or-self::bookstore</code>
|-
| self || 自己,选取当前元素本身,可以用 <code>.</code> 来缩写 || <code>/bookstore/self::bookstore</code>
|-
| namespace || 名称空间,选取元素的命名空间 || <code>/bookstore/book/namespace::*</code>
|}




第40行: 第71行:
==资源==
==资源==
===官网===
===官网===
*[http://www.w3.org/TR/xpath W3C:XPath]
*W3C XPath:http://www.w3.org/TR/xpath  
*W3C XPath 3.0:https://www.w3.org/TR/xpath-30


==参考资料==
===网站===
*[https://zh.wikipedia.org/wiki/XPath 维基百科:XPath]
*[https://zh.wikipedia.org/wiki/XPath 维基百科:XPath]
*[https://en.wikipedia.org/wiki/XPath 维基百科:XPath(英)]
*[https://en.wikipedia.org/wiki/XPath 维基百科:XPath(英)]
*[https://developer.mozilla.org/zh-CN/docs/Web/XPath MDN:XPath]
*[https://developer.mozilla.org/zh-CN/docs/Web/XPath MDN:XPath]
*[https://developer.mozilla.org/zh-CN/docs/Using_XPath MDN:Using XPath]

2023年11月1日 (三) 08:45的版本

XPath即为XML路径语言(XML Path Language),它是一种查询语言,用来选取XML文档中的内容。XPath是万维网联盟(W3C)标准。

简介

时间轴

  • 1999-11-16,W3C发布XPath 1.0。
  • 2010-12-14,W3C发布XPath 2.0。
  • 2014-04-08,W3C发布XPath 3.0。
  • 2017-03-21,W3C发布XPath 3.1。

版本

语法

数据模型

XPath把XML文档看作一棵树(tree),树包含很多节点(nodes),这一模式仅仅是概念性的,并不要求任何具体的实现。节点分为7种类型:

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

了解更多 >> W3C:XPath 1.0 - 数据模型


定位路径

节点描述

轴描述

轴描述,通过XML文件分支树的浏览方向定位。

轴名称 描述 示例
attribute 选取元素的属性,可使用@来缩写 /bookstore/book/attribute::price
child 子节点,选取当前元素的所有子元素,可以省略不写。 /bookstore/book
/bookstore/child::text() 选取当前节点的所有文本子节点。
parent 父节点,选取当前元素的父元素,可以用 .. 来缩写 /bookstore/parent::node()
ancestor 祖先节点,选取当前元素的所有祖先元素,按层级从近到远 /bookstore/book/ancestor::bookstore
ancestor-or-self 自身及祖先节点,选取当前元素的所有祖先元素以及自身,按层级从近到远 /bookstore/book/ancestor-or-self::bookstore
following-sibling 之后同级节点,选取当前元素之后的所有同级元素 /bookstore/book/following-sibling::book
preceding-sibling 之前同级节点,选取当前元素之前的所有同级元素 /bookstore/book/preceding-sibling::book
following 下文节点,在此节点后的所有完整节点,即不包含其祖先节点 /bookstore/book/following::book
preceding 前文节点,在此节点前的所有完整节点,即不包含其子孙节点 /bookstore/book/preceding::book
descendant 选取当前元素的所有后代元素,按层级从近到远 /bookstore/descendant::book 选取当前节点的所有 book 后代。
descendant-or-self 选取当前元素的所有后代元素以及自身,按层级从近到远 /bookstore/descendant-or-self::bookstore
self 自己,选取当前元素本身,可以用 . 来缩写 /bookstore/self::bookstore
namespace 名称空间,选取元素的命名空间 /bookstore/book/namespace::*


运算符

函数

资源

官网

网站