XPath简单介绍

小白教程:通过浏览器简单获取Xpath,安装插件校验Xpath规则 前言 XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 这个东西我也是刚接触,至于原因 接盘了一个项目 于是了解了一下xpath的简单用法,以及怎么写xpath规则 一眼看上去感觉挺简单的,再仔细看确实不难。 下面讲下怎么获取以及简单校验 一个chrome浏览器就解决基本需求。 正文 一. 获取xpath ①这里用吾爱破解为例,比如我想抓取这个人气热门(更多)部分的内容 那么需要做的就是右键点击它,然后选择检查; 可. 阅读详情

一、XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力,被开发者采用来当作小型查询语言。
1、 在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。
1) 节点(Node)
XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。

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

<bookstore>

<book>
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author> 
  <year>2005</year>
  <price>29.99</price>
</book>

</bookstore>

上面的XML文档中的节点例子:

<bookstore> (文档节点)
<author>J K. Rowling</author> (元素节点)
lang="en" (属性节点) 

2) 基本值(或称原子值,Atomic value)
基本值是无父或无子的节点。
基本值的例子:

J K. Rowling
"en"

3)项目(Item)
项目是基本值或者节点。

2、节点关系
父(parent): 每个元素以及属性都有一个父。
子(children): 元素节点可有零个、一个或多个子。
同胞(Sibling): 拥有相同的父的节点。
先辈(Ancestor):某节点的父、父的父,等等。
后代(Descendant):某个节点的子,子的子,等等。

二、XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。

表达式描述
nodename选取此节点的所有子节点。
/从根节点选取。
//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
.选取当前节点。
..选取当前节点的父节点。
@选取属性。
<?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>
路径表达式结果
bookstore选取 bookstore 元素的所有子节点。
/bookstore选取根元素 bookstore。
注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!
bookstore/book选取属于 bookstore 的子元素的所有 book 元素。
//book选取所有 book 子元素,而不管它们在文档中的位置。
bookstore//book选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。
//@lang选取名为 lang 的所有属性。
  • 谓语(Predicates)
    谓语用来查找某个特定的节点或者包含某个指定的值的节点。
    谓语被嵌在方括号中。
径表达式结果
/bookstore/book[1]选取属于 bookstore 子元素的第一个 book 元素。
/bookstore/book[last()]选取属于 bookstore 子元素的最后一个 book 元素。
/bookstore/book[last()-1]选取属于 bookstore 子元素的倒数第二个 book 元素。
/bookstore/book[position()<3]选取最前面的两个属于 bookstore 元素的子元素的 book 元素。
//title[@lang]选取所有拥有名为 lang 的属性的 title 元素。
//title[@lang=’eng’]选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
/bookstore/book[price>35.00]选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。
/bookstore/book[price>35.00]/title选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。
  • 选取未知节点,使用通配符
通配符描述
*匹配任何元素节点。
@*匹配任何属性节点。
node()匹配任何类型的节点。

如:

路径表达式结果
/bookstore/*选取 bookstore 元素的所有子元素。
//*选取文档中的所有元素。
//title[@*]选取所有带有属性的 title 元素。
  • 选取若干路径
    通过在路径表达式中使用“|”运算符,您可以选取若干个路径。(相当于代码中的或)
/bookstore/book/title | //price选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素。
  • XPath 轴
    轴可定义相对于当前节点的节点集。
轴名称结果
ancestor选取当前节点的所有先辈(父、祖父等)。
ancestor-or-self选取当前节点的所有先辈(父、祖父等)以及当前节点本身。
attribute选取当前节点的所有属性。
child选取当前节点的所有子元素。
descendant选取当前节点的所有后代元素(子、孙等)。
descendant-or-self选取当前节点的所有后代元素(子、孙等)以及当前节点本身。
following选取文档中当前节点的结束标签之后的所有节点。
namespace选取当前节点的所有命名空间节点。
parent选取当前节点的父节点。
preceding选取文档中当前节点的开始标签之前的所有节点。
preceding-sibling选取当前节点之前的所有同级节点。
self选取当前节点。
  • 步:
    轴(axis)
    定义所选节点与当前节点之间的树关系
    节点测试(node-test)
    识别某个轴内部的节点
    零个或者更多谓语(predicate)
    更深入地提炼所选的节点集

    步的语法:
    轴名称::节点测试[谓语]

ancestor::book选择当前节点的所有 book 先辈。
ancestor-or-self::book选取当前节点的所有 book 先辈以及当前节点(如果此节点是 book 节点)
child::*/child::price选取当前节点的所有 price孙节点。
XPATH读取有命名空间的节点 XPATH读取有命名空间的节点 DOM4J 立即下载

相关推荐

基于车辆运动学的规划算法 - Hybrid A*/ State Lattice Planning (前置知识:自行车模型、Dubins、Reeds Shepp、多项式曲线、螺旋曲线)

本文将按顺序讲解基于车辆运动学的规划算法,以及需要的前置知识:自行车模型、Dubins和Reeds Shepp曲线、多项式曲线和螺旋曲线

BigDavid123的博客 4860

XPATH使用namespace

[code="java"]XPath xpath = XPathFactory.newInstance().newXPath(); NamespaceContext nsContext = new XHTMLNamespaceContext(); xpath.setNamespaceContext(nsContext); XPathExpression expr = xpath.co...

Nightlee 692

Modbus 通信协议详解

Modbus是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给 IDA(,分布式自动化接口)组织,并成立了 Modbus-IDA 组织。

Projectsauron 的博客 7万+

在XPath中指定namespace

abc 如果要解析上面的XML,需要如下指定XPath: /*[local-name() = 'test' and namespace-uri() = 'http://www.ca.com/']/*[local-name() = 'child' and namespace-uri() = 'http://www.w3.org/1999/xhtml'] 参考链接

冥想盆 1088

Dify 第 13 篇 Dify 工作流 详解

工作流通过将复杂任务分解为节点降低复杂度,提升LLM应用的性能和稳定性。Dify工作流分为两类:Chatflow面向对话场景(如客服),支持多轮对话;Workflow面向批处理场景(如翻译),提供逻辑节点实现自动化。核心概念包括节点、变量(系统/会话/环境变量)及应用类型差异:Chatflow支持中间输出和对话历史,Workflow仅支持结束节点输出。系统变量以"sys"开头,用于全局数据传递,不同应用类型变量不同,如Chatflow的sys.query存储用户输入,Workflow的s

甘蓝的专栏 3248

2026年数学建模国赛B题无线电干扰源的快速自动定位与清除 论文详细解析

数学建模竞赛论文无线电干扰源的快速自动定位与清除2026 年高教社杯全国大学生数学建模竞赛 B 题完整求解论文交会定位、极大极小测点优化、自适应多频道搜索与定向源恢复的统一建模模型、算法、代码、图表与验证一体化交付本文研究圆形目标区域中多个未知无线电干扰源的快速检测、定位与清除问题,建立了由误差楔交会模型、角度观测信息模型、分层勘测模型、鲁棒射线交会模型和定向覆盖反馈模型组成的统一求解框架。模型同时覆盖题目中的四个子问题:多测向射线形成的多边形定位区域及直径、第二个测点的极大极小优选、全向源自动搜索清除策略

YOLO 360

XPath & Namespace

XPath遇到Namespace的时候取值比较麻烦,需要通过XmlNamespaceManager来添加ns context支持 我一般也是用这种方法来处理Namespace,但是有时需要动态生成XPath,所以我有时会采用以下的方法 //*[local-name()='Header' and namespace-uri()='http://schemas.xmlsoap.org/...

weixin_30629977的博客 248

史上最全工商银行核心系统建设历程:从“数据集中”到“ECOS”2.0,见证银行业信息科技跨时代发展征程

ECOS工程的直接成果是建成了工商银行第五代信息系统,即从单一核心银行系统到去核心化开放生态系统,率先开启了以智能化、开放化为特征,数据驱动引领经营模式变革,创新提出了一整套国际领先的分布式开放生态银行系统建设方案,在大型银行全分布式系统架构、主机下移、银行系统生态化转型、大规模交易型分布式数据库等多个领域再次实现“0到1”的突破,建成了具备国际领先水平的全分布式开放生态银行系统,继续勇立数字化转型潮头,推动高质量发展再上新台阶。工商银行的业务连续性管理水平实现了跨越式发展,有力地保障了业务发展。

银行信息系统应用架构详解 824

C#解析XML详解(XPath以及带命名空间NameSpace)

<?xml version="1.0" encoding="utf-8" ?> <bookstore> <book> <title>C语言</title> <author name ="XIAO"> <age>25</age> </auth...

diehe5608的博客 445

『杭电1199』Color the Ball

Problem Description There are infinite balls in a line (numbered 1 2 3 ....), and initially all of them are paint black. Now Jim use a brush paint the balls, every time give two integers a b and follow by a char 'w' or 'b', 'w' denotes the ball from a to

漠宸离若的博客 498

java xpath使用_在XPath中使用Java语言NamespaceContext对象

先决条件和示例 在本文中,我假设您熟悉Brett McLaughlin的“从Java™平台评估XPath”中描述的技术细节。 如果你不知道如何使用XPath运行Java程序,请参阅Brett的文章(请参阅相关主题的文章链接。)同样是真实的加载一个XML文件,并评估XPath表达式所需的API 。 所有示例都将使用以下XML文件: 清单1.示例XML <?xml versio...

cusi77914的博客 909

在ParaView中编程实现涡量可视化

综上所述,本文介绍了在ParaView中使用编程方式实现涡量可视化的方法,并提供了相应的Python代码示例。通过灵活运用ParaView的编程接口,我们可以根据特定需求定制复杂的数据可视化流程,进一步深入了解和分析流体的旋转行为。ParaView是一款强大的开源数据可视化工具,它提供了丰富的功能和灵活的编程接口,使用户能够定制数据可视化流程。你可以根据需要自定义颜色映射范围和颜色,上述代码中的RGBPoints列表中包含了两个点,分别对应涡量值为0和10时的颜色。在实际使用过程中,你需要替换代码中的。

ByteProwl的博客 1436

Xpath Helper 插件的安装和使用介绍,及Xpath函数的简单使用

一、什么是Xpath Helper 用于Html中对目标字段或者属性值进行匹配的一个浏览器插件。效果和正则表达式、css类似。使用爬虫时,可以用来替换正则,非常方便进行过滤。 二、安装Xpath Helper 下载地址:链接: https://pan.baidu.com/s/1u5BSLxwyt1mBq3sLXLioqw 提取码: 2r5m 下载解压之后,如果不可以直接拖拽到浏览器的扩展安装页面直接安装的话,就将解压后的文件的后缀改成rar或者zip再次解压。然后点击加载已解压的扩展程序进行安装。.

Alocus的博客 9960

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

XPath的简单介绍以及使用

XPath 是一门在 XML 文档中查找信息的语言。XPath它可以用来在 XML 文档中对元素和属性进行遍历。要使用xpath首先需要安装 lxml,在终端输入如下命令即可:pip install lxml       什么是xpath?        首先先来介绍下xml,它是用来存储和传输数据使用的。        和html的不同有以下的两点:        (1)html用来显示数据,x...

qq_37253540的博客 1940

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Xpath的简单使用介绍

XPATH是什么? xpath是一种在xml中查找信息的语言,普遍应用于xml中,在类xml的html中也可以使用,在selenium自动化中起核心作用,是写selenium自动化脚本的基础。 xpath的定位 xpath的定位主要由路径定位、标签定位、轴定位组合构成,外加筛选功能进行辅助,几乎可以定位到任意元素。 标签定位:通过标签名即可找到文档中所有满足的标签元素,如: xpa...

一杯咖啡的渗透记忆 1142

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Python—爬取豆瓣Top250(正则和Xpath比较)简单介绍Xpath

Python—爬取豆瓣Top250(正则和Xpath比较)简单介绍Xpath 为了更加进一步理解和熟练使用python爬虫相关的第三方库和更多的去理解网页源码,相互比较第三方库的优劣的地方,对于豆瓣Top250的爬取我才用了纯正则表达式和纯Xpath去清晰网页源码,获得自己想要的数据。 Python标准库中提供了支持SAX和DOM的XML模块,但同时Python也提供了另外一个兼顾SAX和DOM优...

cc的博客 1015

xpath获取完整html,6.1 HTML的简单介绍和快速获取XPath和CSS路径

Web UI 自动化其实就是在页面元素,所以在真正进入页面元素操作之前,我们先认识下我们后面会用到的一些HTML相关知识。HTML的简单介绍什么是HTMLHTML(Hyper Text Markup Language):指的是超文本标记语言,他不是一种编程语言,而是一种标记语言,HTML包括一套标记标签,使用标签来描述网页。HTML 基本结构............:为文档的根元素,所有的描述都在...

weixin_32589453的博客 575

html中css路径和xpath路径,6.1 HTML的简单介绍和快速获取XPath和CSS路径

Web UI 自动化其实就是在页面元素,所以在真正进入页面元素操作之前,我们先认识下我们后面会用到的一些HTML相关知识。HTML的简单介绍什么是HTMLHTML(Hyper Text Markup Language):指的是超文本标记语言,他不是一种编程语言,而是一种标记语言,HTML包括一套标记标签,使用标签来描述网页。HTML 基本结构............:为文档的根元素,所有的描述都在...

weixin_42300144的博客 540

简单介绍下使用jdom/dom4j处理XML中使用XPath

现在,作为一个JAVAer而言,还不会读写XML的可能已经是凤毛麟角了。但是XPath并不是所有人都在用,这里俺们就简单介绍一下在解析XML的时候,使用XPath可以大大提高俺们的编程效率。俺们分别用jdom和dom4j来举例,做个非常简单的介绍。     首先看XML:   ChildAChildB   假设Config为Root,俺们要解析出每个ChildNode节点的name属性及其文本,按照常规方式,俺们可能需要写下面的代码:  

358

爬虫day5--xpath及csv简单使用

1.xpath介绍 1.1 什么是xpath XPath(XML Path Language)是一种XML的查询语言,他能在XML树状结构中寻找节点。XPath 用于在 XML 文档中通过元素和属性进行导航 xml是一种标记语法的文本格式,xpath可以方便的定位xml中的元素和其中的属性值。lxml是python中的一个第三方模块,它包含了将html文本转成xml对象,和对对象执行 1.2 结点关系 xml_content = ''' <bookstore> <book>

Nick_125的博客 304

Scrapy:简单使用、xpath语法

Scrapy:简单使用、xpath语法

weixin_41897680的博客 1614

Xpath详解

在上一篇文章中我们讲述了Beautiful Soup,这个模块我们一般使用她的文档搜索树去从爬取的网页中找到我们需要的东西,而且一般来讲我们都是使用她的CSS选择器去处理网页,所以其实需要一点CSS基础,本章我们讲XPath。 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。因此,对 XPath 的理解是很多高级 XML 应

Lyajpunov的博客 2011

Xpath定位工具

      由于目前一些版本的火狐浏览器安装不了firebug和firePath,而有些版本有安装不了seleuinm Ide,导致做自动化测试需要安装两个火狐浏览器,一台机器同时运行两个火狐又很麻烦,于是想了其他Xpath的定位方法 工具:Chrome浏览器 插件:XPath Helper Chrome 安装方法:直接去Chrome商店里搜索XPath Helper,安装即可(目前需要翻墙...

weixin_42082509的博客 1万+

Xpath语法的简单使用

    Xpath语法的简单使用:

Mr.Yin 349
上一篇: python+selenium自动化测试--try except测试断言
下一篇: python + selenium--webdriver定位方法
_Alice
博客等级 码龄11年 34粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值