• Xpath(一)


    /                             绝对路径,从根元素开始
    //                           相对路径,递归查找所有子孙
    .                             当前层

    ..                           上一层
    *                           通配符,表示任意


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

    []                          谓语,里面跟的是条件
                                条件支持算数运算+-*/><

                                条件支持逻辑运算 and or
    text()                    取文本值用,不加@因为它是个函数


    常用函数:

    contains                包含,写法是括号加两个入参contains(a,b)a包含b
    text()                   是取文本值,也可以当做一个查询条件
    last()                    取末尾

    last()-1                 倒数第二
    starts-with()         表示以XX开头,写法是括号加两个入参
    not()                    表示否定,把内容全包进去not(contains(a,b))a不包含b

    练习:

    地址:http://www.w3school.com.cn/example/xmle/books.xml

    1.选取 书店里 所有书的详细信息
    //book
    2.选取 所有书的标题,所有书的分类签
    选取 所有书的标题//book/title/text()
    所有书的分类签//book/@category
    3.选取 第一本书的定价
    //book[1]/price[text()]
    4.选取 最后一本书的作者
    //book[last()]/author/text()
    5.选取 倒数第二本书的 分类标签
    //book[last()-1]/@category
    6.选取 定价高于35的书的标题
    //book/price[text()>35]/../title/text()
    7.选取 定价在30到40之间的书的标题
    //book/price[text()>30 and text()<40]/../title/text()
    8.选取 作者多于一个的书的标题
    //book[count(author)>1]/title/text()
    9.选取 作者多于一个的书 只列出所有作者名
    //book[count(author)>1]/author
    10.选取 分类是web 且价格低于40的书
    //book[@category='web']/price[text()<40]/..
    11.选取 标题名称包含X的 所有书的定价
    //book/title[(contains(text(),'X'))]/../price/text()
    12.选取 分类是web 且作者不包括James的 作者名
    //book[@category='web']/author[not(contains(text(),'James'))]/text()

  • 相关阅读:
    投资人的能量往往大多远远不仅于此,他能站在不同的角度和高度看问题(要早点拿投资,要舍得让出股份)——最好不要让 Leader 一边做技术、一边做管理,人的能力是有限的,精力也是有限的
    汇编实现获取CPU信息
    Web service的学习资源
    重启网卡的几种方法(命令行,API,
    认知服务
    平台化项目多语言架构
    移动跨平台开发框架Ionic开发一个新闻阅读APP
    net core 1.0 实现负载多服务器单点登录
    canvas1
    asp.net core + angular2
  • 原文地址:https://www.cnblogs.com/xiaowei89426/p/5632527.html
Copyright © 2020-2023  润新知