这一节中,我们将继续了解以下XPath的基本概念
1、 层次结构
在图 1的XPath”/文件系统/目录/目录/文件”中,按照斜杠的划分,可一层一层地递进解读该路径的含义:
(1) Xpath表达式最前面的斜杠“/”:表示匹配XML文档的根节点(注意根节点是文档节点,不是根元素,文档节点包含XML声明、DOCTYPE声明、顶层的处理指令、顶层注释和根元素节点),根节点是XML节点树中最外面的节点。
(2) “/文件系统”:在“/”基础上更进一层,表示匹配文档节点下的“文件系统”元素。
(3) “/文件系统/目录”:在前面“/文件系统”的基础上更深入一层,匹配“文件系统”下的“目录”元素。
(4) “/文件系统/目录/目录/文件”:以上逻辑类推,即在匹配文档中“文件系统”元素的基础上,再往内两层“目录”元素,匹配其中所有的“文件”元素。在图 1中,则是具有“名称=cmd.exe”和“名称=regedit.exe”的两个“文件”节点。
2、 线性结构
XML文档结构除了从外到里的层次性结构之外,还有一种线性的(Linear)兄弟(Sibling)关系结构。兄弟关系是指两个或者多个节点属于同一个父节点。例如图 1中,“名称=cmd.exe”和“名称=regedit.exe”的两个“文件”元素之间就是兄弟关系。在文档中,前者出现在后者的前面,因此称前者为后者的额“前导兄弟”(Proceding sibling),后者则为前者的“后继兄弟”(Following sibling)。
在XPath中,通过“position()”函数计算节点在线性关系中的位置。例如:XPath“/文件系统/目录[position()=1]”,“[]”中间的内容称为“谓项(Predicate)”,在此使用“position()”函数,规定只匹配“/文件系统”下的第一个“目录”元素。
一、 XPath定位操作返回节点列表
XPath表达式分定位表达式和求值表达式。前者用于定位XML文档中的节点,后者根据定位结果返回值(如字符串、布尔值、数值等)。前者总是返回结果集(Node Set),或称节点列表。如果XPath匹配结果仅有1个节点符合定位条件,那么返回的匹配结果就是由该节点组成的节点集。XPath定位表达式不可能返回值,这在使用XPath时需要额外注意。
二、 根节点不是根元素
初次接触XPath的人需要注意,文档的根节点(Root node)不是根元素(Root element)。根节点就是文档节点,包含了XML文档的所有内容;根元素是XML文档包含其它元素的节点,是根节点的一个子节点。
三、 相对定位和绝对定位
有UNIX或Linux操作系统经验的人都知道,路径开头的“/”,代表文件系统的根路径。与此类似,XPath的定位路径也以“/”代表文档的根节点(即XML文档)。
以“/”开头的定位步骤,称为绝对定位步骤,表示从文档根节点开始定位;不以“/”开头的,则称为相对定位步骤,表示从当前上下文节点开始定位。
下一节,将介绍一下XPath的语法提要。
分享到:
相关推荐
官方离线安装包,亲测可用
离线安装包,亲测可用
- **XPath API**:用于在XML文档中定位元素和属性,提供了一种简洁的方式来查询XML数据。 - **XSLT API**:支持XML转换为其他格式,如HTML或PDF,基于XSLT(eXtensible Stylesheet Language Transformations)规范。...
在"JSTL-XML-Xpath"这个主题中,我们可以看到JSTL是如何集成XML处理和XPath查询的。JSTL的`<c:import>`和`<x:parse>`标签用于导入XML文档并将其解析为JDOM或DOM对象。接着,`<x:path>`标签可以用来执行XPath表达式,...
在本主题中,我们将深入探讨基于Xpath的XML文件查询和更新。 **Xpath基本概念** 1. **节点类型**:Xpath中的节点包括元素(element)、属性(attribute)、文本(text)、命名空间(namespace)、处理指令...
1、学习如何使用XMLSPY集成开发环境执行XPath查询、以及XSLT的数据转换。 2、理解XPath的类型系统和序列类型等相关概念,掌握XPath表达式语法和执行语义,能够熟练地、灵活地运用各种关系轴、判定谓词和XPath基本...
这个库将XPath查询功能与Python的DOM接口相结合,使得在Python中处理XML文档变得更加简单。 **版本信息** 在文件名 "py_dom_xpath_six-0.2.4-py3-none-any.whl" 中,我们可以看到几个关键组成部分: - `0.2.4` 是...
libxml2是一个功能强大的XML解析库,它提供了XPath API,可以直接在XML文档上执行XPath查询。使用libxml2时,我们需要先用`xmlParseDoc()`解析XML,得到`xmlDocPtr`,然后调用`xmlXPathNewContext()`创建XPath上下文...
LibXML实现了XPath 1.0规范,允许用户通过表达式查询XML结构。 3. **XSLT支持**:XSLT(eXtensible Stylesheet Language Transformations)用于转换XML文档。LibXML包含了XSLT处理器,可以将XML文档转换成其他格式...
3. XMLDOM(XML文档对象模型):XMLDOM是XML文档的一种编程接口,它允许程序员通过JavaScript或其他支持的语言来创建、修改和查询XML文档。XMLDOM提供了遍历、查找、添加、删除XML节点的方法,使得在网页中动态操作...
本压缩包文件"xpath-helper.crx"很可能是一个Chrome浏览器的扩展程序,旨在提供实时的XPath查询支持。 XPath(XML Path Language)是一种在XML文档中查找信息的语言,它允许我们通过路径表达式来选取节点,如元素、...
BIT-101 XPath Query Tool XML查询工具
XMLDOM(XML Document Object Model)是微软开发的一种用于处理XML文档的API,它允许程序员通过JavaScript或其他编程语言在客户端或服务器端对XML数据进行读取、修改和操作。XMLDOM将XML文档转换为一个可遍历的对象...
这篇文档将围绕着标题中提到的六个关键技术领域——CSS(层叠样式表)、DHTML(动态超文本标记语言)、XMLDOM(XML文档对象模型)、T-SQL(Transact-SQL)、XPath(XML路径语言)以及正则表达式,展开详细的阐述。...
XPath是XML文档中查找信息的语言,它允许我们高效地定位到XML文档中的特定节点,如元素、属性或文本。在Java编程中,JDOM库是一个流行的解析和操作XML的工具,它提供了对XPath的支持,使得我们可以方便地通过XPath...
Python3的xml.etree.ElementTree模块提供了一个XML处理接口,其中包含了对XPath语言的有限支持。XPath是一种在XML文档中查找信息的语言,它允许我们基于元素的名称、属性、文本内容以及它们之间的关系来定位XML节点...
用户可以通过安装CRX文件(即`xpath-helper.crx`)来添加这个插件。XPath(XML Path Language)是一种在XML文档中查找信息的语言,它能够有效地选取XML或HTML文档中的节点,如元素、属性、文本等。 XPath Helper的...
在Java编程环境中,XPath是一种强大的查询语言,用于在XML文档中查找信息。它允许我们根据节点的名称、属性、值或其他特性来定位XML文档中的特定部分。本篇将深入探讨如何在Java中利用XPath来提取XML文档中的数据,...
3. **XML导航**:VTD-XML提供了一组API来实现XML文档的导航,如`AutoPilot`类,它允许用户通过XPath表达式或编程方式遍历XML结构。这使得开发者能够在不完全解析XML文档的情况下,对特定部分进行操作。 4. **XML...