Xpath语法格式总结

Xpath语法格式总结

Xpath(XML Path Language)是一门用于在XML文档中定位节点的语言,也被用于HTML文档中的Web页面抓取。下面详细讲解Xpath语法的使用格式。

基本语法

Xpath中主要有两种路径表达式:绝对路径和相对路径。

绝对路径

绝对路径由根节点开始,通过逐级指定节点的名称来描述节点的路径,以下为绝对路径的格式:

/parent/child[@attribute='value']

其中:

  • / 表示从根节点开始;
  • parent 表示上一级节点的名称;
  • child 表示当前节点的名称;
  • [@attribute='value'] 表示选取具有指定属性值的当前节点。

相对路径

相对路径则是从当前节点开始,通过指定节点名称或通配符等方式来描述节点的路径,以下为相对路径的格式:

./child /ancestor::parent

其中:

  • ./ 表示从当前节点开始;
  • child 表示当前节点的子节点名称;
  • / 表示选择下一级的节点;
  • ancestor:: 表示选取当前节点的祖先节点;
  • parent 表示选取上一级节点的名称。

谓语表达式

除了上述基本语法,Xpath还包含谓语表达式,可以根据节点的属性或索引值进行选择。以下为谓语表达式的使用格式:

//node[@attr='value'][index]

其中:

  • // 表示选取节点,可以跨越多个层级;
  • node 表示当前节点的名称;
  • [@attr='value'] 表示选取具有指定属性值的当前节点;
  • [index] 表示选取匹配的元素中的第index个元素,index从1开始。

示例1

以以下XML数据为例:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="children">
    <title lang="en">Harry Potter</title>
    <author>J.K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
</bookstore>

想要选取所有书籍的价格(price)信息,可以使用以下Xpath表达式:

//book/price

其中 // 表示选取节点,可以跨越多个层级; book 表示当前节点的名称; / 表示选择下一级的节点; price 表示选取当前节点的子节点并指定为price。

示例2

以以下HTML数据为例:

<!DOCTYPE html>
<html>
<head>
    <title>Xpath Demo Page</title>
</head>
<body>
    <div class="content">
        <h1>Welcome to Xpath Demo Page</h1>
        <ul>
            <li><a href="https://www.baidu.com">Baidu</a></li>
            <li><a href="https://www.google.com">Google</a></li>
            <li><a href="https://www.microsoft.com">Microsoft</a></li>
        </ul>
    </div>
</body>
</html>

想要选取所有<a>标签的href属性,可以使用以下Xpath表达式:

//a/@href

其中 // 表示选取节点,可以跨越多个层级; a 表示当前节点的名称; /@href 表示选取具有href属性的当前节点。

总结

Xpath是定位HTML和XML文档中节点的一种特殊查询语言,能够极大地帮助我们进行Web页面的数据抓取。为了有效地使用Xpath语法格式,需要熟悉基本语法和谓语表达式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Xpath语法格式总结 - Python技术站

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

相关文章

  • Java dom4j生成与解析XML案例详解

    Java dom4j生成与解析XML案例详解 什么是dom4j? dom4j是一个开放源代码的Java XML解析器,它基于Java标准的DOM和XPath接口,并扩展了DOM和XPath库以实现更好的性能和易用性。dom4j能够读取XML文档、遍历XML元素树、编辑XML文档并生成新的XML文档。 dom4j生成XML dom4j生成XML是指使用dom4…

    html 2023年5月30日
    00
  • C#操作xml文件之Linq To Xml详解

    C#操作xml文件之Linq To Xml详解 简介 Linq to Xml 是一种使用 Linq 技术访问和操作 Xml 文档的方式,相比于其他方式,它更加灵活、简洁,特别是在写查询语句时,可以使代码更加可读、易于理解。 操作步骤 1. 引入命名空间和 xml 文件 在开始使用 Linq to Xml 之前,需要引入命名空间 System.Xml.Linq…

    html 2023年5月30日
    00
  • Java Web开发项目中中文乱码解决方法汇总

    我很愿意为你详细讲解Java Web开发项目中中文乱码解决方法汇总的完整攻略。 1. 问题描述 在Java Web开发项目中,中文乱码是一个常见的问题。而且,中文乱码出现的场景也比较多,比如HTTP请求参数、数据库操作的结果等等。中文乱码会影响用户体验,并且也可能造成数据丢失。因此,解决中文乱码是很重要的。 2. 常见的中文乱码解决方法 2.1. HTTP请…

    html 2023年5月31日
    00
  • 怎么检查电脑主机上的USB端口好坏? 电脑USB接口是否损坏的查看方法

    要检查电脑主机上的USB端口是否好坏,可以按照以下步骤进行操作: 检查物理连接:首先,检查USB设备是否正确插入电脑主机的USB端口。如果USB设备无法插入端口,可能是端口损坏或者被异物堵塞。此时,可以使用手电筒等工具检查端口内部是否有异物或者损坏的部分。 检查设备管理器:其次,可以通过设备管理器检查USB端口是否正常工作。在Windows系统中,可以按下W…

    html 2023年5月17日
    00
  • Dreamweaver编辑网页预览的时候显示乱码该怎么办?

    首先需要明确一点,Dreamweaver编辑网页时显示乱码,可能有多种原因,可以根据具体情况分析解决。以下是常见的几种情况以及解决方法。 情况一:编码格式不一致导致乱码 确认编辑器字符编码格式:在Dreamweaver中,打开被编辑的网页文件,然后在“文件”菜单中选择“属性”,检查选项卡中的字符集是否为正确的编码格式(如UTF-8)。 确认HTML文件的编码…

    html 2023年5月31日
    00
  • Html标签简明教程

    下面是“Html标签简明教程”的完整攻略。 HTML标签简明教程 什么是HTML标签? HTML(英语:HyperText Markup Language,超文本标记语言)是网页制作所使用的一种标记语言。HTML使用标签来描述网页上的内容和结构,标签通常是成对出现的,也有少量是单个出现的。 HTML标签的基本格式为: <标签名>标签内容</…

    html 2023年5月30日
    00
  • mBlock5慧编程怎么下载安装? 慧编程安装图文教程

    以下是“mBlock5慧编程怎么下载安装? 慧编程安装图文教程”的完整攻略: mBlock5慧编程怎么下载安装? mBlock5慧编程是一款基于Scratch 3.0的图形化编程软件,适用于各种年龄段的学生和教师。以下是mBlock5慧编程下载安装的步骤: 步骤1:打开mBlock5慧编程官网 在浏览器中打开mBlock5慧编程官网(https://www.…

    html 2023年5月18日
    00
  • 深入解析XML中的字符实体与字符数据

    深入解析XML中的字符实体与字符数据 什么是XML XML全称可扩展标记语言,它是一种用来描述和存储数据的标记语言,通常用于网络上传输数据,同时也可以用于本地数据交换。XML格式的数据具有自我描述性和平台无关性,易于解析和处理。 什么是字符实体 在XML中,有些字符具有特殊的意义,比如小于号(<)和大于号(>),如果直接在XML中使用这些字符,那…

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