0

0

xPath注入的基础语法有哪些

王林

王林

发布时间:2023-05-26 12:01:54

|

2019人浏览过

|

来源于亿速云

转载

首先什么是xpath:xpath是一种在xml查找信息的语言

xPath中包含七种类型的节点: 元素、属性、文本、命名空间、处理指令、注释及文档根节点。xml文档是按照文档树的结构进行解析的,文档树的根被称为文档节点或根节点。

xPath注入的基础语法有哪些

这是一份基本的xml文档的源码,从这份xml源码中可以看出,bookstore为文档节点(根节点),book、title、author、year、price是元素节点。其中book节点拥有四个子元素节点:title、author、year、price,title节点有三个同胞:author、year、price。title这个元素节点拥有一个属性和文本节点,属性节点是lang,值为en,文本节点的值是HarryPotter。

下面还有一些xml节点关系的描述(类似于数据结构中的树):

父:book节点的父为bookstore,book节点是title、author、year、price节点的父。(每个节点只能有一个父)。

子:book是bookstore的子,book节点的子是title、author、year、price的子。

(元素节点可以有零个、一个或者多个子)。

标题的同级元素包括作者、年份和价格,这些元素具有相同的父节点,类似于树形结构中的兄弟节点。(节点可以有零个、一个或者多个同胞)。

先辈:节点的父、父的父、父的父的父(无限循环),title元素节点的先辈就是book、bookstore。

后代:节点的子、子的子、子的子的子(无线循环),bookstore文档节点的后代就是book、title、author、year、price、lang。

知道了xml的节点关系还不够,还需要知道它是如何进行查询的,xPath通过路径表达式来选取文档中的节点或者节点集。节点是沿着路径或者步来选取的。

xPath注入的基础语法有哪些

XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。 下面列出了最有用的路径表达式:

nodename:选取此节点的所有接待你

/:从根节点选取

//:从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置

.:选取当前节点

..:选取当前节点的父节点

@:选取属性

下面直接来通过js使用xpath查询语法来进行查询

首先写一份关于xpath调用的html(调用的代码写到js中)文件模板,然后准备好一份xml文件用来查询。

js模板的源代码如下:

https://www.runoob.com/try/try.php?filename=try_xpath_select_cdnodes

挨个看一下这份html文件中的js代码(因为只有js代码)

xPath注入的基础语法有哪些

这是js的一个异步调用函数,重要的代码在第15行和第17行,第15行由函数传入的dname函数是xml的路径,第17行返回得到的xml文件。

xPath注入的基础语法有哪些

请参照第20行,变量xml获取了执行loadXMLDOC函数后得到的XML文件。21行path变量为xpath的查询语法。第一个if语句,判断是否是IE6及以下浏览器,如果是IE6或以下浏览器,获得对应的查询的到的节点数组之后,将数组中的值遍历输出到页面中。

xPath注入的基础语法有哪些

第二个if语句对于非IE6及以下浏览器,执行的过程一样,只是语法稍有不同,非IE6及以下浏览器通过evaluate函数进行查询,格式基本固定,实践一下刚才的几个语法。

查询语法的替换只需要修改path的值就行。

xPath注入的基础语法有哪些

先列出需要查询的语法:

注:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!

bookstore:选取 bookstore 元素的所有子节点。

Beyond商城 2008修改版
Beyond商城 2008修改版

感谢广大歌迷长期以来对网站的支持和帮助,很多朋友曾经问我要过这个商城程序,当时由于工作比较忙,一直没空整理,现在好啦,已全部整理好了,在这里提供给有需要的朋友,没有任何功能限制,完全可以使用的,只是有些商品的广告需自己修改一下,后台没有办法修改,需要有HTML基础才可以修改,另外,哪位朋友在使用的时候,发现了BUG请与我们联系,大家共同改进,谢谢!后台管理地址:http://你的域名/admin/

下载

/bookstore:选取根元素 bookstore。

bookstore/book:选取属于 bookstore 的子元素的所有 book 元素。

//book:选取所有 book 子元素,而不管它们在文档中的位置。

bookstore//book:选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore:之下的什么位置。

//@lang:选取名为 lang 的所有属性。

只使用这些单一查询可能无法得到预期结果,需要将它们与其他查询语句进行组合。以下是需要配合的一些语法:

谓语(用方括号,为了得到更精确的查询结果):

选取 bookstore 元素的第一个子元素 book 的路径为 /bookstore/book[1]。

/bookstore/book[last()]:选取属于 bookstore 子元素的最后一个 book 元素。

/bookstore/book[last()-1]:选取属于 bookstore 子元素的倒数第二个 book 元素。

/bookstore/book[position()

//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 元素。

选取若干路径:

//book/title | //book/price:选取 book 元素的所有 title 和price 元素。

//title | //price:选取文档中的所有 title 和 price 元素。

/bookstore/book/title | //price:选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素

看几个查询的例子:

查询第二个book的title值:/bookstore/book[1]/title

xPath注入的基础语法有哪些

查询所有book的title的值:/bookstore/book//title

xPath注入的基础语法有哪些

查询所有带lang属性的title的值:/bookstore/book//title[@lang]

 xPath注入的基础语法有哪些

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

8

2026.01.15

公务员递补名单公布时间 公务员递补要求
公务员递补名单公布时间 公务员递补要求

公务员递补名单公布时间不固定,通常在面试前,由招录单位(如国家知识产权局、海关等)发布,依据是原入围考生放弃资格,会按笔试成绩从高到低递补,递补考生需按公告要求限时确认并提交材料,及时参加面试/体检等后续环节。要求核心是按招录单位公告及时响应、提交材料(确认书、资格复审材料)并准时参加面试。

44

2026.01.15

公务员调剂条件 2026调剂公告时间
公务员调剂条件 2026调剂公告时间

(一)符合拟调剂职位所要求的资格条件。 (二)公共科目笔试成绩同时达到拟调剂职位和原报考职位的合格分数线,且考试类别相同。 拟调剂职位设置了专业科目笔试条件的,专业科目笔试成绩还须同时达到合格分数线,且考试类别相同。 (三)未进入原报考职位面试人员名单。

58

2026.01.15

国考成绩查询入口 国考分数公布时间2026
国考成绩查询入口 国考分数公布时间2026

笔试成绩查询入口已开通,考生可登录国家公务员局中央机关及其直属机构2026年度考试录用公务员专题网站http://bm.scs.gov.cn/pp/gkweb/core/web/ui/business/examResult/written_result.html,查询笔试成绩和合格分数线,点击“笔试成绩查询”按钮,凭借身份证及准考证进行查询。

11

2026.01.15

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

65

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

36

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

75

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

21

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
XPath 参考手册
XPath 参考手册

共0课时 | 0人学习

XPath 教程
XPath 教程

共9课时 | 3.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号