`

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  

相关推荐

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

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

    XPath jar

    XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。 因此,对 XPath 的理解是很多高级 XML 应用的基础。

    XPath 教程.docx

    XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。

    XPath 教程

    XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。 因此,对 XPath 的理解是很多高级 XML 应用的基础。

    xPath学习教程(全)

    XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。 资料整理来源:...

    XPath教程DOC

    XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。 因此,对 XPath 的理解是很多高级 XML 应用的基础。 开始学习 XPath ...

    数据采集与预处理之xpath爬取豆瓣电影新片榜信息(爬取代码+可视化大屏+数据爬取csv文件)

    2、XPath是一种在XML文档中查找信息的语言,可用来在XML文档中对元素和属性进行遍历。 使用XPath解析网页内容:需要查看豆瓣电影新片榜的网页结构,确定你想要爬取的信息对应的XPath。例如,你可能想要爬取电影的...

    XPath使用说明

    简述:XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。

    java 的dom的读取xml

    XPath 用于在 XML 文档中通过元素和属性进行导航。 在学习之前应该具备的知识: 在您继续学习之前,应该对下面的知识有基本的了解: • HTML / XHTML • XML / XML 命名空间 如果您希望首先学习这些项目,请在我们...

    Python的Xpath介绍和语法详解

    XPath是一门在XML和HTML文档中查找信息的语言,可以用来在XML和HTML文档中对元素和属性进行遍历 XPath的安装 Chrome插件XPath Helper 点Chrome浏览器右上角:更多工具—–扩展程序—–谷歌商店——–勾选XPath ...

    XPath CSS Explorer-crx插件

    找到针对任何元素的优化的XPath和CSS选择器,浏览/搜索CSS选择器 XPath CSS资源管理器此工具旨在为Web开发人员提供探索网页结构并生成优化且健壮的XPath和CSS选择器的功能,以便在他们的测试和其他用例中使用它们。 ...

    python与web自动化基础试题(含答案).docx

    python与web自动化基础试题(含答案)全文共3页,当前为第1页。python与web自动化基础...D A、路径查找 B、属性查找 C、标签查找 D、链接查找 4、xpath语法中,相对路径的正确写法是?D A、/div[@class='hehe'] B、//htm

    jaxen-1.1-beta-6.rar

    使用Xpath所依赖的包jaxen-1.1-beta-6.rar;XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。

    XSLT_经典教程.doc

    XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。 因此,对 XPath 的理解是很多高级 XML 应用的基础 XPath 参考手册

    linq to xml的一些例子.doc

    /**/////查找具有特定属性的元素 5 /**/////查找具有特定子元素的元素 5 //查询 XDocument 与查询 XElement 5 /**/////编写使用复杂筛选的查询 8 /**/////对元素进行排序 10 /**/////对多个键上的元素进行排序 10 //...

    day023-xml解析笔记和代码.rar

    支持xpath解析,就可以可以直接输入一个路径查找: 由于DOM4J在解析XML时只能一层一层解析,所以当XML文件层数过多时使用会很不方便, 结合XPATH就可以直接获取到某个元素 使用dom4j支持xpath的操作...

    Python爬虫之xlml解析库(全面了解)

    Xpath是一门在XML中查找信息的语言,可用来在XML文档中对元素和属性进行遍历。XQuery和xpoint都是构建于xpath表达之上 2.节点 父(parent),子(children),兄弟(sibling),先辈(ancetstor),后代(Decendant...

Global site tag (gtag.js) - Google Analytics