• xpath语法及操作


    firefox浏览器安装xpath checker插件

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

    1.xpath 术语

    1.1节点:元素、属性、文本、命名空间、处理命令、注释以及文档(根)节点

    <?xml version="1.0" encoding="ISO-8859-1"?>

    <bookstore>(文档结点--根节点)

             <book>

               <title lang="en">Harry Potter</title>(lang="en"--属性节点)

               <author>J K. Rowling</author> (--元素节点)

               <year>2005</year>

               <price>29.99</price>

             </book>

    </bookstore>

    J K. Rowling,en基本值,基本值是无父或无子的节点

    节点关系:

    父(parent)每个元素以及属性都有一个父

    子(childrenn)元素节点可有0个,1个或多个子节点

    同胞节点(sibling)拥有相同的父的节点

    先辈(ancestor)某节点的父,父的父...

    后代(descendant)

    2.选取节点

    /--从根节点选取

    //--从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置

    .--选取当前节点

    ..--选取当前节点的父节点

    @--选取属性

    练习demo.xml文件

    1.选取 书店里 所有书的详细信息

    /bookstore

    2.选取 所有书的标题,所有书的分类签

    /bookstore/book/title

    3.选取 第一本书的定价

    /bookstore/book[1]/price/text()

    选取所有价格

    /bookstore/book/price/text()

    选取价格高于 35 的 price 节点

    /bookstore/book[price>35.00]/price

    4.选取 最后一本书的作者

    /bookstore/book[last()]/author/text()

    5.选取 倒数第二本书的 分类标签

    /bookstore/book[last()-1]/@category

    6.选取 包含cover属性的书的标题

    /bookstore/book[@cover]/title/text()

    7.选取 定价高于35的书的标题

    /bookstore/book[price>35.00]/title

    8.选取 定价在30到40之间的书的标题

    /bookstore/book[price>35.00 and price<40.00]/title

    /bookstore/book[price>35.00 and price<40.00]/title/text()

    9.选取 作者多于一个的书的标题

    /bookstore/book[count(author)>1]/title

    10.选取 作者多于一个的书 只列出所有作者名

    /bookstore/book[count(author)>1]/author/text()

    11.选取 分类不是web 且价格低于40的书的分类属性值

    /bookstore/book[@category!='web' and price<40.00]

    12.选取 标题名称包含X的 所有书的定价值

    /bookstore/book[title[contains(text(),'X')]]/price/text()

    总结:

    查询对象,层层找

    一个元素是一个单独的个体,它有属性,有内容值

    一个/是绝对路径,从根元素开始

    两个//是相对路径,递归查找所有子孙

    一个. 是当前层,两个.是上一层

    @表示取属性

    *叫通配符,表示任意

    []叫谓语,里面跟的是查询条件

    条件支持算数运算+-*/><,条件支持逻辑运算 and or

    取文本值用text(),不加@因为它是个函数

    常用函数就几个,contains是包含,写法是括号加两个入参

                          text()是取文本值,也可以当做一个查询条件

                          last()取末尾,倒数第二last()-1

                          starts-with(),表示以XX开头,写法是括号加两个入参

                          not(),表示否定,把内容全包进去

                          count

    1.选取 book下所有 后代节点的text值 (提示:用通配符*)

    /bookstore/book/@*

    2.选取 单个作者 且 分类是web的书的出版年份值

    /bookstore/book[count(author)=1 and @category='web']/year/text()

    3.选取 单个作者 且 定价大于30的书的分类签

    /bookstore/book[count(author)=1 and price>30]/@category

    4.选取 多个作者 且 标题是以X开头的 书的定价

    /bookstore/book[count(author)>1 and contains(title,'X')]/price/text()

    5.选取 分类是web 且作者不包括James的所有书的标题

    /bookstore/book[@category='web' and not(contains(author,'James'))]/title/text()

    https://xinbao.sinosig.com/

    //div[@id='navBar']/div[@class='jumbotron']/nav[@class='navbar navbar-default']/div[@class='container paddinglr15']/ul[@class='nav navbar-nav navbar-right']/li[contains(a,'解决方案')]/ul[@class='nav-two navbar-nav-lev2']/li/a/span[@class='titleStyle']

    //input[@id='identifyNumber']

    //select[@id='identifyType']

  • 相关阅读:
    String为值类型还是引用类型
    Mat数据类型
    各数据类型取值范围和所占字节数
    opencv matType
    python函数参数中冒号与箭头
    批量删除list中元素的方法
    PyQt QListview和QListWidgt
    函数形参中的冒号与箭头
    CSS选择器之相邻兄弟选择器
    CSS选择器之子元素选择器
  • 原文地址:https://www.cnblogs.com/jackyu126/p/7189685.html
Copyright © 2020-2023  润新知