XPath的安装与使用
作者:mmseoamin日期:2023-12-11

XPath的安装与使用

    • 一、XPath简介
      • XPath是如何搜索XML或HTML文档的?
      • 路径表达式
      • 二、XPath的安装(chrome)
      • 三、如何使用XPath
        • 1.XPath语法
        • 2.使用XPath插件

          一、XPath简介

          XPath即XML路径查询语言(XML Path Language),是一种用于确定XML文档中部分节点位置的语言。它起初只支持搜索XML文档,更新后能支持搜索HTML文档。

          XPath是如何搜索XML或HTML文档的?

          XPath基于XML或HTML的节点树,沿着节点树的节点关系定位到目标节点所在的位置,并选取节点或节点集。为了形象地描述出搜索节点的路径,XPath提供简洁明了的路径表达式,通过路径表达式可以快速地定位与选取XML或HTML文档中的一个节点或者一组节点集。

          路径表达式

          路径表达式描述了从一个节点到另一个节点或一组节点的路径。这些路径与在常规的计算机文件系统中见到的路径非常相似。例如,“/学生名单/班级/学生/籍贯”就是一个路径表达式,该路径表达式也是用“/”字符进行分割的,只不过它分割的是节点,而不是目录。

          XML文档,XML节点树与路径表达式的关系

          XML文档
          
              
                  Learing XML
                  Erik T.Ray
                  2003
                  39,95
              
          
          

          XPath的安装与使用,在这里插入图片描述,第1张

          在上图中,从上到下,依次为XML文档、XML节点树和路径表达式。其中路径表达式为:“/bookstore/book/price”,它对应的路径为XML节点树种加粗的线条,用于选取节点price对应的文本39.95

          二、XPath的安装(chrome)

          本章选取的XPath版本为2.0.2,并在chrome中添加扩展,请保持chrome为最新版。

          压缩包地址:XPath压缩包,密码:fxd1

          1.下载解压到桌面。

          2.打开chrome,打开设置在左边工具栏中找到扩展程序,点开就能看到所有的扩展程序,确保自己打开了开发者模式

          XPath的安装与使用,在这里插入图片描述,第2张

          XPath的安装与使用,在这里插入图片描述,第3张

          3.将桌面上的解压缩文件拖到刚刚的界面进行添加程序。

          XPath的安装与使用,在这里插入图片描述,第4张

          4.添加完成扩展程序中就新增了一个XPath Helper。

          XPath的安装与使用,在这里插入图片描述,第5张

          5.可以通过浏览器右上角扩展程序将XPath添加到工具栏。

          XPath的安装与使用,在这里插入图片描述,第6张

          6.检查是否成功添加XPath到浏览器。

          点击XPath程序页面出现黑色输入框即为添加成功。

          XPath的安装与使用,在这里插入图片描述,第7张

          三、如何使用XPath

          我们要编写一个路径表达式,则要先了解XPath的语法,才能使用路径表达式正确的选取节点。

          1.XPath语法

          (1).选取节点

          表达式说明
          节点名称选取此节点的所有子节点
          /从根节点开始选取直接子节点,相当于绝对路径
          //从当前节点开始选取后代节点,相当于相对路径
          .选取当前节点
          选取当前节点的父节点
          @选取属性节点

          (2).常用的XPath函数

          函数说明
          position()返回当前被处理的节点位置
          last()返回当前节点集中的最后一个节点
          count()返回节点的总数目
          max((arg,arg…))返回大于其他参数的参数
          min((arg,arg…))返回小于其它参数的参数
          name()返回当前节点的名称
          current-date()返回当前的日期(带有时区)
          current-time()返回当前的时间(带有时区)
          contains(string1,string2)若string1包含string2,则返回True,否则返回False

          (3).选取未知节点

          通配符/函数说明
          *匹配任何元素节点
          @*匹配任何属性节点
          node()匹配任何类型节点

          (4).选取若干路径

          在XPath中,我们可以使用“|”运算符连接多个路径表达式,根据多个路径选取对应的节点。

          //book/title | //book/price     # 选取属于book的子节点title和price
          //title | //price               # 选取所有title节点和price节点
          /bookstore/book/title | //price   # 选取属于/bokstore/的所有title节点和文档中的所有节点
          

          2.使用XPath插件

          下面以豆瓣电影TOP250为例,来说明怎么获取所有的电影名称。

          网址:豆瓣电影TOP250

          1.打开豆瓣TOP250网站,按下F12进入开发者模式,可以看到该网页的HTML代码

          XPath的安装与使用,在这里插入图片描述,第8张

          2.点击开发者模式左上角小箭头图标,进入检查模式。

          XPath的安装与使用,在这里插入图片描述,第9张

          3.鼠标移到电影名称,点击,就会在开发者模式中看到电影名称的html标签。

          XPath的安装与使用,在这里插入图片描述,第10张

          XPath的安装与使用,在这里插入图片描述,第11张

          4.鼠标右键名称,赋值XPath路径。

          5.打开XPath插件,将刚刚赋值的路径粘贴到XPath输入框中。

          XPath的安装与使用,在这里插入图片描述,第12张

          我们就看到了我们选取的电影名

          6.要选取所有的电影名称我们就需要更改路径。

          观察当前名称的html标签位置,找出规则。

          所有电影名称的XPath路径为:

          //*[@id="content"]/div/div[1]/ol/li/div/div[2]/div[1]/a/span[1]
          

          在XPath输入框中输入上述路径,得出所有电影名称。

          XPath的安装与使用,在这里插入图片描述,第13张

          至此我们学会了怎么使用XPath。