W3C教程(9):W3C XPath 活动

W3C XPath(Activity) 是一个标准XML的查询语言,它可以用来找到 XML 文档中的元素和属性,并查询它们的值。本教程将会详细讲解 XPath 的表达式、函数及其他相关内容。

XPath 表达式

XPath 表达式是由一系列轴表达式或节点测试表达式连接而成的。最简单的 XPath 表达式是所有不含连接符的节点名称,例如: bookstore。更复杂的表达式由节点名称、轴、操作符以及文本值函数组成,例如: bookstore/book/title

XPath 操作数包括:数字、字符串、逻辑表达式、节点集合和布尔值。可以使用逻辑运算符 (例如大于号、小于号)、字符串运算符 (例如运算符“=”和contains()`) 和节点运算符 (例如父节点和子节点) 来组成 XPath 表达式。

如://book[price>30] 这条表达式表示选取所有价格大于 30 的书籍。

XPath 轴

XPath 轴指定了要沿其进行搜索的节点集合。

XPath 定义了 7 个轴,但常用的是以下 4 个轴:

  • ancestor: 父节点及父节点的父节点……直到文档的根节点
  • descendant: 直接子节点及子节点的子节点
  • following: 当前节点之后按文档顺序的所有节点
  • preceding: 当前节点之前按文档顺序的所有节点

如:ancestor::* 这条表达式表示选取当前节点的所有父节点。

XPath 函数

XPath 定义了大量内置的函数,例如数学函数、字符串函数、逻辑函数等等。常用的一些函数如下:

  • count(): 返回集合长度
  • concat(): 连接字符串
  • contain(): 如果字符串包含指定的子字符串,则返回 true,否则返回 false
  • starts-with(): 判断字符串是否以指定的字符串开头
  • substring(): 提取字符串的子集

如://book[contains(title,"Harry Potter")] 这条表达式表示选取所有标题中包含 "Harry Potter" 的书籍。

示例说明

示例1

XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
    <book category="COOKING">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    <book category="CHILDREN">
        <title lang="en">Harry Potter</title>
        <author>J.K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
    <book category="WEB">
        <title lang="en">Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
    </book>
</bookstore>

表达式://book[price>30]

结果集:

<book category="WEB">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
</book>

该表达式选取了所有价格大于 30 的书籍,结果集只包含了一本书。

示例2

XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<employees>
    <employee id="1" gender="M">
        <firstName>John</firstName>
        <lastName>Doe</lastName>
        <age>35</age>
        <department>IT</department>
        <salary>55000</salary>
    </employee>
    <employee id="2" gender="F">
        <firstName>Jane</firstName>
        <lastName>Smith</lastName>
        <age>47</age>
        <department>HR</department>
        <salary>65000</salary>
    </employee>
    <employee id="3" gender="M">
        <firstName>William</firstName>
        <lastName>Johnson</lastName>
        <age>25</age>
        <department>Sales</department>
        <salary>55000</salary>
    </employee>
    <employee id="4" gender="F">
        <firstName>Catherine</firstName>
        <lastName>Lee</lastName>
        <age>40</age>
        <department>Marketing</department>
        <salary>75000</salary>
    </employee>
</employees>

表达式://employee[department = 'IT'][salary>50000]/firstName

结果集:

<firstName>John</firstName>

该表达式选取了部门为 IT 且薪资大于 50000 的员工的姓名,结果集只包含了一个人。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:W3C教程(9):W3C XPath 活动 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • 解决JavaEE开发中字符编码出现乱码的问题

    JavaEE开发中出现乱码的问题往往与字符编码有关。下面是解决JavaEE开发中字符编码出现乱码的问题的完整攻略。 1. 设置项目字符编码 在编写JavaEE应用程序时,我们需要设置项目的字符编码。例如,在SpringBoot中,我们可以在application.properties文件中添加以下属性: # 设置字符编码为UTF-8 spring.http.…

    html 2023年5月31日
    00
  • C#下使用XmlDocument操作XML详解

    下面是“C#下使用XmlDocument操作XML详解”的完整攻略: 1. 创建XmlDocument对象 XmlDocument类是C#中处理XML文档的核心类,使用XmlDocument可以实现创建、读取和修改XML文件的功能。创建XmlDocument对象的代码如下: using System.Xml; XmlDocument xmlDoc = new…

    html 2023年5月30日
    00
  • html5中的input新属性range使用记录

    下面是关于 “HTML5中的input新属性range使用记录” 的详细攻略: 简介 <input type=”range”> 是 HTML5 中新添加的表单元素之一,它用于让用户在给定的范围内选择一个数值,类似于滑动条的效果。本文将介绍 <input type=”range> 的使用方法。 属性 <input type=”ra…

    html 2023年5月31日
    00
  • utf-8 网页不显示+utf-8网页乱码的通用解决方法

    我们来详细讲解一下“utf-8 网页不显示+utf-8网页乱码的通用解决方法”。 一、什么是 UTF-8 网页不显示和 UTF-8 网页乱码 UTF-8 是一种编码方式,它能够支持强大的字符集,包括世界上几乎所有的语言。然而,如果编码方式不正确,就会导致网页不显示或网页乱码。 UTF-8 网页不显示指的是网页的部分或全部内容无法显示。UTF-8 网页乱码指的…

    html 2023年5月31日
    00
  • perl处理xml的模块介绍

    下面我为你详细讲解“perl处理xml的模块介绍”的攻略。 Perl处理XML的模块介绍 在Perl中,有很多处理XML的模块。在这篇文章中,我们将介绍其中的一些常见的模块以及如何使用它们处理XML数据。 XML::Simple XML::Simple是一个基础的模块,它可以将XML数据转换为Perl数据结构,方便Perl程序进行操作。XML::Simple…

    html 2023年5月30日
    00
  • Win10怎么将中文登录用户文件夹名改为英文名?

    在Windows 10系统中,可以将中文登录用户文件夹名改为英文名。以下是将中文登录用户文件夹名改为英文名的详细攻略: 步骤1:创建新的管理员账户 单击Windows 10系统的“开始”按钮。 选择“设置”。 选择“帐户”。 选择“家庭和其他人”。 选择“添加其他人”。 选择“我没有此人的登录信息”。 选择“添加用户没有Microsoft帐户”。 输入新的管…

    html 2023年5月17日
    00
  • 阿里巴巴如何铺货到抖音? 1688一键铺货到抖音流程

    以下是“阿里巴巴如何铺货到抖音? 1688一键铺货到抖音流程”的完整攻略: 阿里巴巴如何铺货到抖音? 1688一键铺货到抖音流程 阿里巴巴是中国最大的电商平台之一,而抖音则是中国最受欢迎的短视频平台之一。如果阿里巴巴的商家能够将商品铺货到抖音上,将会获得更多的曝光和销售机会。下面是阿里巴巴如何铺货到抖音的详细攻略。 阿里巴巴如何铺货到抖音 注册抖音账号:商家…

    html 2023年5月18日
    00
  • 基于Android XML解析与保存的实现

    关于“基于Android XML解析与保存的实现”的完整攻略,我将分为以下几个部分进行讲解: 确定需求和场景 XML解析的基本概念和知识 Android中XML解析API的使用 Android中XML存储API的使用 示例说明 1. 确定需求和场景 在实现“基于Android XML解析与保存”的功能之前,我们首先需要确定我们的需求和场景。具体来说,我们需要…

    html 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部