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日

相关文章

  • 网站怎么提高网页关键词排名的方法

    以下是“网站怎么提高网页关键词排名的方法”的完整攻略: 网站怎么提高网页关键词排名的方法 网站的关键词排名对于网站的流量和曝光度有着非常重要的影响。以下是一些提高网站关键词排名的方法,以便网站管理员更好地优化网站。 方法1:优化网站内容 网站的内容是影响关键词排名的最重要因素之一。以下是一些优化网站内容的方法: 确保网站内容与关键词相关,并且内容质量高。 使…

    html 2023年5月18日
    00
  • drools的简单入门案例场景分析

    我们来详细讲解“Drools的简单入门案例场景分析”的完整攻略。我们会分以下几个步骤来展开说明: 环境准备 规则引擎的基本概念 规则引擎的使用场景 Drools 的简介 Drools 的使用与案例分析 1.环境准备 在使用Drools之前,我们需要安装:1. JDK 的最新版本2. Eclipse 的最新版本3. Drools 的最新版本4. Maven 的…

    html 2023年5月30日
    00
  • MYSQL数据库导入数据时出现乱码的解决办法

    下面是MYSQL数据库导入数据时出现乱码的解决办法的完整攻略: 问题描述 在使用MYSQL数据库导入数据时,有可能会出现数据中出现乱码的情况。乱码通常会在数据为中文或其他非西欧语言时出现,导致数据的完整性受到影响。 解决办法 1. 修改MYSQL字符集 首先要检查MYSQL的字符集是否正确设置。可以通过以下步骤来修改MYSQL字符集: 登录MYSQL数据库 …

    html 2023年5月31日
    00
  • HTML基础详解(下)

    下面我针对“HTML基础详解(下)”的内容,给出完整的攻略如下: 1. 标题 HTML基础详解(下) 2. 简介 本篇文章是HTML基础知识学习的第二篇文章,主要讲解了HTML的表格、表单和网页布局等内容。 3. HTML表格 HTML表格是用于在网页上展示数据的一种常见方式,本节将详细介绍HTML表格的使用。 基本结构 HTML表格的基本结构如下所示: &…

    html 2023年5月30日
    00
  • mybatis if test条件判断语句中的判断问题分析

    MyBatis是一个流行的Java持久层框架,在进行数据查询时,经常需要使用条件判断语句来筛选数据。MyBatis通过XML文件或注解方式编写SQL语句,而在这些SQL语句中可以包含if标签来进行条件判断。 if标签简介 if标签在MyBatis中表示条件判断,其语法格式如下: <if test="condition"> ..…

    html 2023年5月30日
    00
  • Vbs脚本经典教材(最全的资料还是MSDN)

    Vbs脚本经典教材(最全的资料还是MSDN) 完整攻略 介绍 Vbs脚本是一种常用的可以在Windows环境下运行的脚本语言,通常用于简化日常重复操作、自动化任务等。MSDN作为一个官方文档,提供了完整的Vbs脚本教程和资料,可以帮助初学者快速入门和了解Vbs脚本的基本语法、功能、用法和应用场景。 使用步骤 以下为使用MSDN获取Vbs脚本经典教材的完整攻略…

    html 2023年5月30日
    00
  • centos7怎么关闭ipv6仅使用ipv4?

    如果您需要在CentOS 7中关闭IPv6并仅使用IPv4,可以尝试以下解决方法: 解决方法1:修改sysctl.conf文件 打开终端,以root用户身份登录。 输入以下命令:vi /etc/sysctl.conf 在文件末尾添加以下两行代码: net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default…

    html 2023年5月17日
    00
  • Mybatis调用MySQL存储过程的简单实现

    这里是关于“Mybatis调用MySQL存储过程的简单实现”的详细攻略: 步骤一:编写存储过程 首先,我们需要编写一个MySQL存储过程。存储过程是一种包含一系列SQL语句的程序,可以被存储在数据库中,供其他程序调用。在MySQL中,我们可以使用“CREATE PROCEDURE”语句来创建存储过程。下面是一个简单的示例: CREATE PROCEDURE …

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