0

0

XPath 11个实例

黄舟

黄舟

发布时间:2017-02-28 16:40:03

|

1768人浏览过

|

来源于php中文网

原创

实例 1
基本的xpath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径。
/aaa
选择根元素aaa
    

           
           
           
           
          
                 
            
            
       
  
/AAA/CCC

选择AAA的所有CCC子元素
    

           
           
           
           
           
                
           
           
      
  
/AAA/DDD/BBB

选择AAA的子元素DDD的所有子元素
   

   
           
           
           
           
           
                
           
           
     

实例 2
如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系) //BBB
选择所有BBB元素

      
           
           
           
           
                
           
           
                
                     
                     
                
           
      
 
//DDD/BBB

选择所有父元素是DDD的BBB元素

      
           
           
           
           
                
           
           
                
                     
                     
                
           
     

 
实例 3
星号 * 表示选择所有由星号之前的路径所定位的元素
/AAA/CCC/DDD/*
选择所有路径依附于/AAA/CCC/DDD的元素

      
           
                
                     
                     
                     
                     
                
           
           
                
                     
                     
                     
                     
                
           
           
                
                     
                          
                     
                
           
      
 
/*/*/*/BBB

选择所有的有3个祖先元素的BBB元素

      
           
                
                     
                     
                     
                     
                
           
           
                
                     
                     
                     
                     
                
           
           
                
                     
                          
                     
                
           
      
 
//*

选择所有元素

   
         
                
                     
                     
                     
                     
                
           
           
                
                     
                     
                     
                     
                
           
           
                
                     
                          
                     
                
           
     

实例 4
方块号里的表达式可以进一步的指定元素, 其中数字表示元素在选择集里的位置, 而last()函数则表示选择集中的最后一个元素.

/AAA/BBB[1]
选择AAA的第一个BBB子元素
    

  
           
           
           
           
      
 
/AAA/BBB[last()]

 
选择AAA的最后一个BBB子元素
 

     
           
           
           
           
     

实例 5


//@id
选择所有的id属性
    

 
           
           
           
           
      
 
//BBB[@id]

选择有id属性的BBB元素
   

   
           
           
           
           
      
 
//BBB[@name]

选择有name属性的BBB元素
    

 
           
           
           
           
      
 
//BBB[@*]

选择有任意属性的BBB元素
    

 
           
           
           
           
      
 
//BBB[not(@*)]

选择没有属性的BBB元素
    

 
           
           
           
           
     

实例 6
属性的值可以被用来作为选择的准则, normalize-space函数删除了前部和尾部的空格, 并且把连续的空格串替换为一个单一的空格

//BBB[@id=\'b1\']
选择含有属性id且其值为\'b1\'的BBB元素
    

  
           
           
           
      
 
//BBB[@name=\'bbb\']

选择含有属性name且其值为\'bbb\'的BBB元素
    

 
           
           
           
      
 
//BBB[normalize-space(@name)=\'bbb\']

选择含有属性name且其值(在用normalize-space函数去掉前后空格后)为\'bbb\'的BBB元素

      
           
           
           
     

实例 7
count()函数可以计数所选元素的个数

//*[count(BBB)=2]
选择含有2个BBB子元素的元素

可实例多个的jQuery滑块插件
可实例多个的jQuery滑块插件

可实例多个的jQuery滑块插件

下载
      
           
                
                
                
           
           
                
                
           
           
                
                
           
      
 
//*[count(*)=2]

选择含有2个子元素的元素

      
           
                
                
                
           
           
                
                
           
           
                
                
           
      
 
//*[count(*)=3]

选择含有3个子元素的元素
    

 
           
                
                
                
           
           
                
                
           
           
                
                
           
     

实例 8
name()函数返回元素的名称, start-with()函数在该函数的第一个参数字符串是以第二个参数字符开始的情况返回true, contains()函数当其第一个字符串参数包含有第二个字符串参数时返回true.

//*[name()=\'BBB\']
选择所有名称为BBB的元素(这里等价于//BBB)
    

 
           
                
                
                
           
           
                
                
           
           
                
                
           
      
 
//*[starts-with(name(),\'B\')]

选择所有名称以\"B\"起始的元素
    

 
           
                
                
                
           
           
                
                
           
           
                
                
           
      
 
//*[contains(name(),\'C\')]

选择所有名称包含\"C\"的元素
    

 
           
                
                
                
           
           
                
                
           
           
                
                
           
     

实例 9
多个路径可以用分隔符 | 合并在一起

//CCC | //BBB 
选择所有的CCC和BBB元素
    

 
           
           
           
                
           
           
      
 
/AAA/EEE | //BBB

选择所有的BBB元素和所有是AAA的子元素的EEE元素
    

 
           
           
           
                
           
           
      
 
/AAA/EEE | //DDD/CCC | /AAA | //BBB

可以合并的路径数目没有限制
  

    
           
           
           
                
           
           
     

实例 10
child轴(axis)包含上下文节点的子元素, 作为默认的轴,可以忽略不写.

/AAA
等价于 /child::AAA

      
           
           
      
 
/child::AAA

等价于/AAA
   

   
           
           
     

 
/AAA/BBB
等价于/child::AAA/child::BBB

      
           
           
     

 
/child::AAA/child::BBB
等价于/AAA/BBB

      
           
           
     

/child::AAA/BBB
二者都可以被合并
  

    
           
           
     

 实例 11
descendant (后代)轴包含上下文节点的后代,一个后代是指子节点或者子节点的子节点等等, 因此descendant轴不会包含属性和命名空间节点.

/descendant::*
选择文档根元素的所有后代.即所有的元素被选择

      
           
                
                     
                          
                          
                     
                
           
           
                
                     
                          
                               
                          
                     
                
           
      
 
/AAA/BBB/descendant::*

选择/AAA/BBB的所有后代元素

      
           
                
                     
                          
                          
                     
                
           
           
                
                     
                          
                               
                          
                     
                
           
      
 
//CCC/descendant::*

选择在祖先元素中有CCC的所有元素
  

    
           
                
                     
                          
                          
                     
                
           
    

 以上就是XPath 11个实例的内容,更多相关内容请关注PHP中文网(www.php.cn)!

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
clawdbot ai使用教程 保姆级clawdbot部署安装手册
clawdbot ai使用教程 保姆级clawdbot部署安装手册

Clawdbot是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

2

2026.01.29

clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址
clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址

clawdbot龙虾机器人官网入口:https://clawd.bot/,clawdbot ai是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

1

2026.01.29

Golang 网络安全与加密实战
Golang 网络安全与加密实战

本专题系统讲解 Golang 在网络安全与加密技术中的应用,包括对称加密与非对称加密(AES、RSA)、哈希与数字签名、JWT身份认证、SSL/TLS 安全通信、常见网络攻击防范(如SQL注入、XSS、CSRF)及其防护措施。通过实战案例,帮助学习者掌握 如何使用 Go 语言保障网络通信的安全性,保护用户数据与隐私。

5

2026.01.29

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

513

2026.01.28

包子漫画在线官方入口大全
包子漫画在线官方入口大全

本合集汇总了包子漫画2026最新官方在线观看入口,涵盖备用域名、正版无广告链接及多端适配地址,助你畅享12700+高清漫画资源。阅读专题下面的文章了解更多详细内容。

182

2026.01.28

ao3中文版官网地址大全
ao3中文版官网地址大全

AO3最新中文版官网入口合集,汇总2026年主站及国内优化镜像链接,支持简体中文界面、无广告阅读与多设备同步。阅读专题下面的文章了解更多详细内容。

309

2026.01.28

php怎么写接口教程
php怎么写接口教程

本合集涵盖PHP接口开发基础、RESTful API设计、数据交互与安全处理等实用教程,助你快速掌握PHP接口编写技巧。阅读专题下面的文章了解更多详细内容。

10

2026.01.28

php中文乱码如何解决
php中文乱码如何解决

本文整理了php中文乱码如何解决及解决方法,阅读节专题下面的文章了解更多详细内容。

13

2026.01.28

Java 消息队列与异步架构实战
Java 消息队列与异步架构实战

本专题系统讲解 Java 在消息队列与异步系统架构中的核心应用,涵盖消息队列基本原理、Kafka 与 RabbitMQ 的使用场景对比、生产者与消费者模型、消息可靠性与顺序性保障、重复消费与幂等处理,以及在高并发系统中的异步解耦设计。通过实战案例,帮助学习者掌握 使用 Java 构建高吞吐、高可靠异步消息系统的完整思路。

10

2026.01.28

热门下载

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

精品课程

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

共0课时 | 0人学习

XPath 教程
XPath 教程

共9课时 | 4万人学习

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

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