`

XPath 元素及属性查找

    博客分类:
  • XML
 
阅读更多

实例 1

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

 

/AAA
选择根元素AAA

      <AAA>
           <BBB/>
           <CCC/>
           <BBB/>
           <BBB/>
           <DDD>
                <BBB/>
           </DDD>
           <CCC/>
      </AAA>

 

 

/AAA/CCC
选择AAA的所有CCC子元素

      <AAA>
           <BBB/>
           <CCC/>
           <BBB/>
           <BBB/>
           <DDD>
                <BBB/>
           </DDD>
           <CCC/>
      </AAA>

 

 

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

      <AAA>
           <BBB/>
           <CCC/>
           <BBB/>
           <BBB/>
           <DDD>
                <BBB/>
           </DDD>
           <CCC/>
      </AAA>

 

实例 2

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

 

//BBB
选择所有BBB元素

      <AAA>
           <BBB/>
           <CCC/>
           <BBB/>
           <DDD>
                <BBB/>
           </DDD>
           <CCC>
                <DDD>
                     <BBB/>
                     <BBB/>
                </DDD>
           </CCC>
      </AAA>

 

 

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

      <AAA>
           <BBB/>
           <CCC/>
           <BBB/>
           <DDD>
                <BBB/>
           </DDD>
           <CCC>
                <DDD>
                     <BBB/>
                     <BBB/>
                </DDD>
           </CCC>
      </AAA>

 

实例 3

星号 * 表示选择所有由星号之前的路径所定位的元素

 

选择所有路径依附于/AAA/CCC/DDD的元素

      <AAA>
           <XXX>
                <DDD>
                     <BBB/>
                     <BBB/>
                     <EEE/>
                     <FFF/>
                </DDD>
           </XXX>
           <CCC>
                <DDD>
                     <BBB/>
                     <BBB/>
                     <EEE/>
                     <FFF/>
                </DDD>
           </CCC>
           <CCC>
                <BBB>
                     <BBB>
                          <BBB/>
                     </BBB>
                </BBB>
           </CCC>
      </AAA>

 

 

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

      <AAA>
           <XXX>
                <DDD>
                     <BBB/>
                     <BBB/>
                     <EEE/>
                     <FFF/>
                </DDD>
           </XXX>
           <CCC>
                <DDD>
                     <BBB/>
                     <BBB/>
                     <EEE/>
                     <FFF/>
                </DDD>
           </CCC>
           <CCC>
                <BBB>
                     <BBB>
                          <BBB/>
                     </BBB>
                </BBB>
           </CCC>
      </AAA>

 

 

//*
选择所有元素

      <AAA>
           <XXX>
                <DDD>
                     <BBB/>
                     <BBB/>
                     <EEE/>
                     <FFF/>
                </DDD>
           </XXX>
           <CCC>
                <DDD>
                     <BBB/>
                     <BBB/>
                     <EEE/>
                     <FFF/>
                </DDD>
           </CCC>
           <CCC>
                <BBB>
                     <BBB>
                          <BBB/>
                     </BBB>
                </BBB>
           </CCC>
      </AAA>

 

实例 4

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

 

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

      <AAA>
           <BBB/>
           <BBB/>
           <BBB/>
           <BBB/>
      </AAA>

 

 

/AAA/BBB[last()]
选择AAA的最后一个BBB子元素

      <AAA>
           <BBB/>
           <BBB/>
           <BBB/>
           <BBB/>
      </AAA>

 

实例 5

属性通过前缀 @ 来指定

 

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

      <AAA>
           <BBB id = "b1"/>
           <BBB id = "b2"/>
           <BBB name = "bbb"/>
           <BBB/>
      </AAA>

 

 

//BBB[@id]
选择有id属性的BBB元素

      <AAA>
           <BBB id = "b1"/>
           <BBB id = "b2"/>
           <BBB name = "bbb"/>
           <BBB/>
      </AAA>

 

 

//BBB[@name]
选择有name属性的BBB元素

      <AAA>
           <BBB id = "b1"/>
           <BBB id = "b2"/>
           <BBB name = "bbb"/>
           <BBB/>
      </AAA>

 

 

//BBB[@*]
选择有任意属性的BBB元素

      <AAA>
           <BBB id = "b1"/>
           <BBB id = "b2"/>
           <BBB name = "bbb"/>
           <BBB/>
      </AAA>

 

 

//BBB[not(@*)]
选择没有属性的BBB元素

      <AAA>
           <BBB id = "b1"/>
           <BBB id = "b2"/>
           <BBB name = "bbb"/>
           <BBB/>
      </AAA>

 

实例 6

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

 

 

 

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

      <AAA>
           <BBB id = "b1"/>
           <BBB name = " bbb "/>
           <BBB name = "bbb"/>
      </AAA>

 

 

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

      <AAA>
           <BBB id = "b1"/>
           <BBB name = " bbb "/>
           <BBB name = "bbb"/>
      </AAA>

 

 

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

      <AAA>
           <BBB id = "b1"/>
           <BBB name = " bbb "/>
           <BBB name = "bbb"/>
      </AAA>
分享到:
评论
1 楼 fanjieshanghai 2013-08-28  

相关推荐

    查看网页元素的xpath

    XPath 使用路径表达式来选取节点,如元素、属性、文本等。本篇文章将详细探讨如何查看网页元素的 XPath,并介绍其相关知识点。 首先,XPath 的基本概念: 1. **节点**:在 XML 或 HTML 文档中,节点可以是元素(如...

    Selenium WebDriver中使用By.Xpath快速定位页面元素

    XPath 语法是用于在 XML 文档中查找元素的语言。例如,//input[@name='pass'] 用于定位 name 属性为 pass 的 input 元素。//input[@name='pass' and @class='textfild'] 用于定位 name 属性为 pass 且 class 属性为 ...

    谷歌浏览器XPath2.0插件

    XPath(XML Path Language)是一种在XML文档中查找信息的语言,它允许我们通过路径表达式来选取节点,比如元素、属性和文本等。XPath 2.0是XPath的第二个主要版本,增加了更多的功能和优化。 在没有XPath Helper的...

    xpath-helper 插件及使用方法

    XPath(XML Path Language)是一种在XML文档中查找信息的语言,它通过路径表达式来选取节点,如元素、属性、文本等。 该插件的主要功能包括: 1. **元素定位**:在浏览网页时,XPath Helper允许用户右键点击任何...

    用xpath精确定位节点元素

    XPath是一种用于在XML文档中查找信息的语言。它被设计用来在XML文档中导航,帮助开发者精确地定位和选取节点。XPath在XSLT(Extensible Stylesheet Language Transformations)中扮演着核心角色,因为它允许用户基于...

    页面元素xpath定位工具.rar

    通过XPath,我们可以根据元素的属性(如id、class、name等)或其在DOM树中的位置来选择元素。例如,以下是一些基本的XPath语法: 1. 通过ID定位:`//*[@id='element_id']` 2. 通过类名定位:`//*[contains(@class, ...

    获取网页上 xpath , css 路径的插件, 方便爬虫、自动化测试相关软件工作者快速获取页面上html元素路径

    例如,给定的"xpath-selector-master"可能是一个这样的插件,它提供了直观的界面,用户只需点击页面上的元素,插件就会自动生成相应的XPath和CSS选择器路径。这极大地提升了工作效率,使得开发者和测试人员能更专注...

    Xpath生成器,自动生成XPATH,C#版

    2. **属性选取**:除了选取元素,还能生成选取XML元素属性的XPath表达式,如 `@id` 用来选取带有特定`id`属性的元素。 3. **条件筛选**:支持生成包含条件判断的XPath表达式,例如选取所有`class`属性值为`...

    用XPath精确定位节点元素

    XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,如元素、属性、文本等。XPath通过路径表达式来选取节点,类似于我们在网页浏览器中输入URL来访问网页。在处理...

    IE下获取XPATH小工具源码_xpath_

    XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,如元素、属性、文本等。在IE浏览器下,为了方便开发者获取XML或HTML文档中的XPath路径,存在一种小工具,本文将...

    XPATH参考手册

    XPath 是一门在 XML 文档中查找信息的语言,XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。因此,对 XPath 的理解是很...

    Xpath指南XPATH实例

    - **节点类型**:XPath处理的节点包括元素(Element)、属性(Attribute)、文本(Text)、命名空间(Namespace)、处理指令(Processing Instruction)、注释(Comment)和文档(Document)节点。 - **路径表达式...

    xpath 依赖包及开发手册

    XPath是XML处理中的一种强大的查询语言,用于在XML文档中查找特定的信息。它允许开发者根据节点的名称、属性、值甚至是它们之间的关系来定位XML数据。在这个“xpath 依赖包及开发手册”中,我们主要关注XPath的使用...

    XPathHelper_2.0.2_xpath_

    2. **属性选择**:XPath可以选取具有特定属性的元素。如 `//input[@type='text']` 将选取所有type属性为"text"的input元素,这在Web自动化测试中用于识别表单输入框。 3. **动态选取**:XPath支持逻辑运算符(and、...

    XPath教程

    XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,包括元素、属性、文本等。XPath基于W3C标准,其1.0版本是XPath语言的基础,提供了强大的查询和导航功能。本教程...

    Python Selenium XPath根据文本内容查找元素的方法

    元素的属性中没有id、name;虽然有class,但比较大众化,且位置也不固定;例如:页码中的下一页;那该如何找到该元素? 上一页 &lt;a&gt;1 &lt;a&gt;2 下一页 解决办法 text() text() 函数文本定位 page_next = driver.find...

    python、selenium版本查看 xpath元素抓取随记(csdn)————程序.pdf

    这篇笔记主要涵盖了如何查看Python和Selenium的版本,以及XPath元素抓取的高级用法,这对于进行Web自动化测试至关重要。 首先,了解你的Python环境的版本是必要的。在Windows系统中,你可以通过CMD(命令提示符)...

    xpath-helper.zip

    XPath(XML Path Language)是一种在XML文档中查找信息的语言,它允许我们通过路径表达式来选取节点,如元素、属性、文本等。XPath的使用极大地简化了数据的检索和处理过程。 在Python的Web爬虫开发中,lxml库是...

    XPath教程(描述XPath的用法)

    XPath是一种在XML文档中查找信息的语言,用于选取XML文档中的节点,包括元素、属性、文本等。XPath基于路径表达式来选取XML文档中的节点,这些路径表达式类似于文件系统的路径,但更为灵活。 1. **XPath的基本概念*...

    Python爬虫解析XPATH讲义

    * `xpath('//div[@id="test"]/text()')`:获取id属性为test的div元素的文本内容 XPATH语言是Python爬虫开发中一个非常重要的工具,通过学习XPATH语言,我们可以更方便地提取HTML和XML文档中的信息。

Global site tag (gtag.js) - Google Analytics