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不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

70

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

73

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

298

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

471

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

17

2026.01.23

php远程文件教程合集
php远程文件教程合集

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

114

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

79

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

94

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

74

2026.01.22

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
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号