`
fantaxy025025
  • 浏览: 1329352 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

XPath学习:基本语法简要总结

XML 
阅读更多

 

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

     XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。

     下面的例子中红色字体表示使用对应语法获取的元素(或属性)。

        1、斜线/从根节点选择 ,基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径,获取满足该路径的所有节点:

      选择根元素   语法:/AAA 

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

     选择AAA的所有CCC子元素  语法:/AAA/CCC

   <AAA > 
     <BBB /> 
     <CCC /> 
     <BBB /> 
     <DDD > 
          <BBB /> 
     </DDD > 
     <CCC > 
          <DDD > 
               <BBB /> 
               <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 >

      选择AAA的CCC的所有BBB元素  语法:/AAA/CCC//BBB

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

     3、点“.” 选取当前节点。

     4、“..”选取当前节点的父节点。

     5、”@”选取属性。

      选择所有的id属性  语法://@id      注意:这里选取的是属性而不是方法。

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

     选择有id属性的BBB元素   语法://BBB[@id]   区别于上面的属性选择

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

    选择id属性为“id1”的BBB元素  语法://BBB[@id="b1"]

  <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元素  语法://BBB[not(@*)]

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

 

谓语在XPath是重要的一部分,谓语用来查找某个特定的节点或者包含某个指定的值的节点。谓语被嵌在方括号中。

     1、选择AAA下的第一个BBB元素  语法:/AAA/BBB[1]

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

      2、选择AAA下的最后一个BBB元素  语法:/AAA/BBB[last()]

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

     3、选择AAA下的倒数第二个BBB元素  语法:/AAA/BBB[last()-1]

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

      4、选择AAA下的前面两个BBB元素  语法:/AAA/BBB[position()<3]

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

      5、获取AAA下的BBB下的有s属性的CCC元素   语法:/AAA/BBB/CCC[@s]

   <AAA > 
     <BBB > 
          <CCC   s = "1" /> 
          <CCC   s = "2" /> 
          <CCC   s = "3" /> 
          <CCC   s = "4" /> 
          <CCC   s = "5" /> 
          <CCC r = "a" /> 
     </BBB > 
     <CCC > 
          <BBB   r = "a" /> 
          <BBB   r = "b" /> 
          <BBB   r = "c" /> 
     </CCC > 
     <BBB /> 
     <BBB /> 
  </AAA >

     6、选取所有 bookstore 元素的 book 元素,且其中的 price 元素的值须大于 35.00。 语法:bookstore/book[price>35.00]

   <bookstore > 
     <book>

       <title land="eng">Book1</title>

       <price>29.99</tilte>

     </book>  

     <book >

       <title land="eng">Book2</title>

       <price>39.55</tilte>

     </book >  

   </bookstore >

       7、选取所有 bookstore 元素中的 book 元素的 title 元素,且其中的 price 元素的值须大于 35.00.  语法:/bookstore/book[price>35.00]/title

   <bookstore > 
     <book>

       <title land="eng">Book1</title>

       <price>29.99</tilte>

     </book>  

     <book>

       <title land="eng">Book2</title >

       <price>39.55</tilte>

     </book>  

   </bookstore >

 

 

来自下面链接(有改动和更新)

http://www.cnblogs.com/zhaozhan/archive/2009/09/09/1563617.html

 

 

 

分享到:
评论

相关推荐

    XPath语法简要说明1

    XPath语法简要说明1

    Xpath 语法生成器(插件).zip

    - **学习资源**:通常,这样的插件还会包含XPath语法的简要教程,帮助初学者快速上手。 3. **XPath在爬虫中的应用**: - **定位目标信息**:在网页抓取时,XPath可以精确地定位到需要的数据,如商品价格、评论...

    selenium自动化测试面试总结.docx

    Selenium 自动化测试面试总结 本文总结了自动化测试面试的相关知识点,涵盖了 UI 自动化的框架、元素定位、等待等内容,并提供了实用的面试题和答案。 一、编程基础 1. 单引号、双引号、三引号的区别:单引号和双...

    Visual Basic 2010 入门经典(高清版)

    - **ASP.NET概述**:简要介绍了ASP.NET的基本概念。 - **网页生命周期**:讲解了ASP.NET网页的执行流程。 - **服务器控件**:通过实例展示了如何使用ASP.NET服务器控件构建动态网页。 **19. 第18章:ASP.NET** ...

    XML 官方指南中文版

    通过学习《XML官方指南》,读者可以掌握XML的基本语法,了解如何创建合法的XML文档,以及如何利用DOM(Document Object Model)、SAX(Simple API for XML)等解析器进行XML数据的处理。 XML的扩展性体现在它可以...

    Beginning.Microsoft.Visual.C.Sharp.2008 第四版(英文)

    1. **C#语言基础**:本书首先介绍C#语言的基本语法,包括变量、数据类型、运算符、控制流程(如条件语句和循环)、数组和集合等概念,这些都是编程的基础。 2. **面向对象编程**:C#是一种强类型、面向对象的语言,...

    SQL 2003 standard part14

    - **与SQL/Foundation的关联**:基础部分定义了SQL的基本语法,为XML相关规范提供了必要的上下文。 - **与SQL/Schemata的关联**:信息和定义模式部分规定了数据库模式的创建规则,对于管理XML相关的表结构至关重要。...

    db2-cert7307-a4.pdf

    通过本教程的学习,您已经了解了IBM DB2 9中XQuery的基本概念及应用。XQuery作为一种专门针对XML数据的查询语言,在DB2 9中提供了丰富的功能,能够帮助用户更加灵活地管理和查询存储在DB2中的XML数据。对于那些希望...

    asp深入编程(c#)

    - **C#语言基础**:C#是一种现代的、面向对象的编程语言,本书对其语法进行了详细介绍,为后续的ASP.NET编程打下了坚实的基础。 #### 三、ASP.NET核心技术 - **WebForms页面**:解释了WebForms的概念、工作原理及其...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

     好了,通过第三章的学习,我们已经了解了一些XML和DTD的基本术语,但是我们还不知道怎样来写这些文件,需要遵循什么样的语法,在下一章,将重点介绍有关撰写XML和DTD文档的语法。 第四章 XML语法 七.DTD的语法...

    php+mysql+html+xml+Lunix 面试题

    - PHP的基本语法,如变量声明、数据类型、控制结构(if、else、switch)、循环(for、while、do-while)。 - PHP函数的使用,如字符串处理函数(strlen、substr、str_replace)、数组处理函数(array_push、count...

    Python实现Web UI自动化测试实战-Chapter-13

    在本章中,我们将学习如何安装和配置Selenium WebDriver,以及如何创建第一个自动化测试脚本,比如打开一个网页、输入文本、点击按钮等基本操作。 2. **元素定位**: 在自动化测试中,我们需要找到网页上的特定元素...

    dom4j-2.1.1.jar+jaxen-1.1.6.jar.rar

    这大大降低了学习成本,使得开发者无需关注底层实现,只需要专注于XPath语法即可。JAXEN的性能也相当出色,尤其是在处理大型XML文档时,依然能保持较高的查询速度。 在实际应用中,DOM4J和JAXEN经常协同工作。例如...

    自制Python网络爬虫

    Python语言因其简洁明了的语法和丰富的第三方库,成为制作爬虫的理想选择。在给定的“自制Python网络爬虫”项目中,包含了三个Python脚本:第一个爬虫.py、第一个爬虫2.py和nd.py,这些都是实现爬虫功能的源代码文件...

    python lxml使用文档

    在这一部分,教程首先介绍了命名空间的基本术语(4.1节),然后解释了多命名空间文档的语法(4.2节),以及如何处理这些命名空间(4.3节)。 “Creating a new XML document”章节阐述了如何用lxml来创建新的XML...

Global site tag (gtag.js) - Google Analytics