XPath 11个实例

实例 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子元素的元素

                                                                                                                                                                                               //*[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)!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2419860.html

(0)
上一篇 2025年3月3日 03:08:02
下一篇 2025年2月20日 00:17:32

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • XPath是什么

    xpath即xml路径语言,是一种在xml 文档中查找信息,用来确定xml文档中某部分位置、遍历xml文档中的元素和属性的语言。 XPath是XSLT标准的重要核心组件,是XSL的重要组成;在学习XPath之前,一定要先对XML、XSL、X…

    2025年3月3日 编程技术
    200
  • python爬虫之xpath的基本使用详解

    本篇文章主要介绍了python爬虫之xpath的基本使用详解,现在分享给大家,也给大家做个参考。一起过来看看吧 一、简介 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPat…

    2025年2月27日
    200
  • 爬虫的解析方式五:XPath

    众多语言都能进行爬虫,但基于python的爬虫显得更加简洁,方便。爬虫也成了python语言中必不可少的一部分。爬虫的解析方式也是多种多样。上一篇给大家讲述的是爬虫的解析方式四:PyQuery,今天给大家带来的是另一种方式,XPath。 p…

    2025年2月27日
    200
  • python之Xpath语法

    python视频教程栏目介绍python的Xpath语法。 一、XMl简介 (一)什么是 XML XML 指可扩展标记语言(EXtensible)XML 是一种标记语言,很类似 HTML。XML 的设计宗旨是传输数据,而非显示数据。XML …

    2025年2月26日
    200
  • How to use Python for xpath, JsonPath, and bs4?

    1.xpath 1.1 xpath使用 google提前安装xpath插件,按ctrl + shift + x 出现小黑框 安装lxml库 pip install lxml ‐i https://pypi.douban.com/simple…

    2025年2月26日
    200
  • XML和Xpath定位小结

    1.1 XML简介 典型的XML文档是由XML文档首部和XML文档主体构成的。 XML文档首部:声明包含? ?标签之中。例如: ?xml version=”1.0″ encoding=”UTF-8&#82…

    数据库 2025年2月22日
    200

发表回复

登录后才能评论