xpath语法学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xpath语法学习笔记相关的知识,希望对你有一定的参考价值。

xml示例文档

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

  选取节点:XPath 使用路径表达式在 XML 文档中选取节点

nodename    选择此节点的所有子节点
/ 从根节点选取
// 匹配文档中的节点,不考虑其位置
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性


bookstore 选取bookstore元素的所有子节点 /bookstore 选择根元素下的bookstore元素,假如路径起始于/ bookstore/book 选取bookstoe的所有子元素中为book的元素 //book 选取文档中的所有book元素,不管它在什么位置 //bookstore//book 选择属于bookstore元素后代的所有book元素,不管它在什么位置 //@lang 选择所有属性为lang的元素

  谓语:用来查找某个特定的节点或包含某个特定值的节点,被放在方括号中

/bookstore/book[1]      选取bookstore子元素中的第一个book元素
/bookstore/book[last()]   选取bookstore子元素中的最后一个book元素
/bookstore/book[last()-1]   选取bookstore子元素中倒数第二个book元素
/bookstore/book[postion()<3] 选取bookstore子元素中前两个book元素
//title[@lang]              选取所有title元素且其属性拥有lang名
//title[@lang=‘en‘]         选取所有title元素且其属性拥有lang=‘en‘
/bookstore/book[price>30]   选取bookstore元素下所有子元素中元素price>30book的元素

  未知节点

* 任何元素节点
@*    任何属性节点

/bookstore/*    bookstore元素下的所有子元素
//* 当前文档的所有元素
//title[@*] 所有带有属性的title元素

  选取若干路径

//book/title|//book/price       选取book元素下的所有title和price元素
//title|//price                 选取文档中的所有title和price元素

  

以上是关于xpath语法学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

scrapy学习笔记 1,第一次使用scrapy

JSP学习笔记:JSP语法和指令

学习笔记 UpdateXml() MYSQL显错注入

2023爬虫学习笔记 -- 优化xpath解析代码

Python爬虫:Xpath语法笔记

Selenium Xpath元素无法定位 NoSuchElementException: Message: no such element: Unable to locate element(代码片段