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日

相关文章

  • Spring spel获取自定义注解参数值方式

    下面是关于”Spring SpEL获取自定义注解参数值”的完整攻略。 1. 自定义注解 首先,我们需要先定义一个自定义注解,这里以控制器中的自定义注解为例: @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface DemoAnnotation { /*…

    html 2023年5月30日
    00
  • iOS10.3.1正式版怎么升级?iOS10.3.1正式版升级教程(附固件下载地址)

    以下是iOS 10.3.1正式版升级的攻略: 备份数据:在升级iOS 10.3.1之前,您需要备份您的iOS设备上的所有数据。您可以使用iCloud或iTunes进行备份。请确保您的备份是完整的,并且包含您的所有重要数据。 下载iOS 10.3.1固件:在备份数据之后,您需要下载iOS 10.3.1固件。您可以在苹果官方网站上下载固件,或者使用iTunes进…

    html 2023年5月17日
    00
  • Fluent Mybatis快速入门详细教程

    Fluent Mybatis是一个基于Mybatis框架的ORM(对象关系映射)库,它提供了一种更加流畅、直观的方式来操作数据库。下面是完整的Fluent Mybatis快速入门攻略: 安装和配置 在pom.xml文件中添加以下依赖: <dependency> <groupId>org.mybatis.spring.boot</…

    html 2023年5月30日
    00
  • 解决HttpPost+json请求—服务器中文乱码及其他问题

    下面是详细的攻略: 问题描述 在使用HttpPost+json请求时,可能因为服务器未正确设置字符编码导致中文乱码等问题。 解决方法 1. 设置请求头部Content-Type 通过设置请求头部Content-Type,告诉服务器请求的内容为json格式,并且指定字符编码为utf-8。 HttpPost httpPost = new HttpPost(url…

    html 2023年5月31日
    00
  • 谷歌浏览器怎么翻译网页?谷歌浏览器网页翻译功能使用方法介绍

    谷歌浏览器是一款功能强大的浏览器,它提供了网页翻译功能,可以帮助用户快速翻译网页内容。下面是谷歌浏览器网页翻译功能使用方法介绍: 步骤1:打开需要翻译的网页 打开谷歌浏览器,输入需要翻译的网页地址。 打开网页后,如果该网页不是您的语言,谷歌浏览器会自动弹出翻译提示。 步骤2:使用谷歌浏览器翻译功能 点击翻译提示,谷歌浏览器会自动将网页翻译成您的语言。 如果没…

    html 2023年5月17日
    00
  • MYSQL数据库使用UTF-8中文编码乱码的解决办法

    MYSQL数据库使用UTF-8中文编码乱码的解决办法 问题描述 在使用MYSQL数据库时,常常会遇到中文乱码的问题,特别是在使用UTF-8编码时。这时候需要进行相关设置才能避免出现乱码的情况。 解决办法 第一步:确认MYSQL数据库字符集 在MYSQL数据库中,字符集是决定文本和数据如何存储和处理的重要因素。因此,在进行相应设置之前,首先需要确认MYSQL数…

    html 2023年5月31日
    00
  • C#读取xml节点数据方法小结

    我来详细讲解一下《C#读取xml节点数据方法小结》的完整攻略。 标题 1. 什么是XML? XML(Extensible Markup Language),中文翻译为可扩展标记语言,它是一种标准的文本格式,常被用来表示数据传输。 2. XML文档结构 XML文档由多个节点组成,有根节点、元素节点、属性节点等。下面是一个示例的XML文档结构: <?xml…

    html 2023年5月30日
    00
  • 快速解决mysql导出scv文件乱码、蹿行的问题

    快速解决MySQL导出CSV文件乱码、错位的问题,可以按照以下步骤来操作: 1. 设置字符集 首先要确定数据库字符编码与导出文件字符编码是否一致,如果不一致,那么导出的文件就很可能出现乱码。因此,在MySQL客户端登录后,可以使用以下命令设置连接字符集: SET NAMES ‘utf8’; 此命令将字符集设置为UTF-8,可以根据实际情况选择对应的字符集。 …

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