`
xm_king
  • 浏览: 395391 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
Group-logo
Spring技术内幕读书笔...
浏览量:15658
社区版块
存档分类
最新评论

查询XML之路--XPath(二)

    博客分类:
  • XML
阅读更多

这一节中,我们将继续了解以下XPath的基本概念

1、 层次结构

1XPath”/文件系统/目录/目录/文件中,按照斜杠的划分,可一层一层地递进解读该路径的含义:

(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文档包含其它元素的节点,是根节点的一个子节点。

三、      相对定位和绝对定位

UNIXLinux操作系统经验的人都知道,路径开头的“/”,代表文件系统的根路径。与此类似,XPath的定位路径也以“/”代表文档的根节点(即XML文档)。

以“/”开头的定位步骤,称为绝对定位步骤,表示从文档根节点开始定位;不以“/”开头的,则称为相对定位步骤,表示从当前上下文节点开始定位。

下一节,将介绍一下XPath的语法提要。

分享到:
评论

相关推荐

    perl-XML-XPath-1.42-3.el8.noarch(1).rpm

    官方离线安装包,亲测可用

    perl-XML-XPath-1.13-22.el7.noarch.rpm

    离线安装包,亲测可用

    xml-apis-1.4.01.jar.zip

    - **XPath API**:用于在XML文档中定位元素和属性,提供了一种简洁的方式来查询XML数据。 - **XSLT API**:支持XML转换为其他格式,如HTML或PDF,基于XSLT(eXtensible Stylesheet Language Transformations)规范。...

    JSTL-XML-Xpath

    在"JSTL-XML-Xpath"这个主题中,我们可以看到JSTL是如何集成XML处理和XPath查询的。JSTL的`<c:import>`和`<x:parse>`标签用于导入XML文档并将其解析为JDOM或DOM对象。接着,`<x:path>`标签可以用来执行XPath表达式,...

    基于Xpath的xml文件查询和更新

    在本主题中,我们将深入探讨基于Xpath的XML文件查询和更新。 **Xpath基本概念** 1. **节点类型**:Xpath中的节点包括元素(element)、属性(attribute)、文本(text)、命名空间(namespace)、处理指令...

    XML - 实验(3) -- XPath & XSLT

    1、学习如何使用XMLSPY集成开发环境执行XPath查询、以及XSLT的数据转换。 2、理解XPath的类型系统和序列类型等相关概念,掌握XPath表达式语法和执行语义,能够熟练地、灵活地运用各种关系轴、判定谓词和XPath基本...

    PyPI 官网下载 | py_dom_xpath_six-0.2.4-py3-none-any.whl

    这个库将XPath查询功能与Python的DOM接口相结合,使得在Python中处理XML文档变得更加简单。 **版本信息** 在文件名 "py_dom_xpath_six-0.2.4-py3-none-any.whl" 中,我们可以看到几个关键组成部分: - `0.2.4` 是...

    从XML文件抽出XPath - C and C++

    libxml2是一个功能强大的XML解析库,它提供了XPath API,可以直接在XML文档上执行XPath查询。使用libxml2时,我们需要先用`xmlParseDoc()`解析XML,得到`xmlDocPtr`,然后调用`xmlXPathNewContext()`创建XPath上下文...

    XML-LibXML-2.0126.tar.gz

    LibXML实现了XPath 1.0规范,允许用户通过表达式查询XML结构。 3. **XSLT支持**:XSLT(eXtensible Stylesheet Language Transformations)用于转换XML文档。LibXML包含了XSLT处理器,可以将XML文档转换成其他格式...

    CSS、DHTML、XMLDOM、T-SQL、XPath、正则表达式等.chm文件

    3. XMLDOM(XML文档对象模型):XMLDOM是XML文档的一种编程接口,它允许程序员通过JavaScript或其他支持的语言来创建、修改和查询XML文档。XMLDOM提供了遍历、查找、添加、删除XML节点的方法,使得在网页中动态操作...

    xpath-helper.zip

    本压缩包文件"xpath-helper.crx"很可能是一个Chrome浏览器的扩展程序,旨在提供实时的XPath查询支持。 XPath(XML Path Language)是一种在XML文档中查找信息的语言,它允许我们通过路径表达式来选取节点,如元素、...

    BIT-101 XPath Query Tool XML查询工具

    BIT-101 XPath Query Tool XML查询工具

    XMLDOM T-SQL XPath 正则表达式等CHM格式学习文档

    XMLDOM(XML Document Object Model)是微软开发的一种用于处理XML文档的API,它允许程序员通过JavaScript或其他编程语言在客户端或服务器端对XML数据进行读取、修改和操作。XMLDOM将XML文档转换为一个可遍历的对象...

    CSS、DHTML、XMLDOM、T-SQL、XPath、正则表达式等.chm文件帮助文档

    这篇文档将围绕着标题中提到的六个关键技术领域——CSS(层叠样式表)、DHTML(动态超文本标记语言)、XMLDOM(XML文档对象模型)、T-SQL(Transact-SQL)、XPath(XML路径语言)以及正则表达式,展开详细的阐述。...

    xpath读取XML节点

    XPath是XML文档中查找信息的语言,它允许我们高效地定位到XML文档中的特定节点,如元素、属性或文本。在Java编程中,JDOM库是一个流行的解析和操作XML的工具,它提供了对XPath的支持,使得我们可以方便地通过XPath...

    Python3 xml.etree.ElementTree支持的XPath语法详解

    Python3的xml.etree.ElementTree模块提供了一个XML处理接口,其中包含了对XPath语言的有限支持。XPath是一种在XML文档中查找信息的语言,它允许我们基于元素的名称、属性、文本内容以及它们之间的关系来定位XML节点...

    xpath-helper

    用户可以通过安装CRX文件(即`xpath-helper.crx`)来添加这个插件。XPath(XML Path Language)是一种在XML文档中查找信息的语言,它能够有效地选取XML或HTML文档中的节点,如元素、属性、文本等。 XPath Helper的...

    Java中使用xpath获取xml中的数据

    在Java编程环境中,XPath是一种强大的查询语言,用于在XML文档中查找信息。它允许我们根据节点的名称、属性、值或其他特性来定位XML文档中的特定部分。本篇将深入探讨如何在Java中利用XPath来提取XML文档中的数据,...

    vtd-xml vtd-xml vtd-xml

    3. **XML导航**:VTD-XML提供了一组API来实现XML文档的导航,如`AutoPilot`类,它允许用户通过XPath表达式或编程方式遍历XML结构。这使得开发者能够在不完全解析XML文档的情况下,对特定部分进行操作。 4. **XML...

Global site tag (gtag.js) - Google Analytics