• xpath


    1 什么是xpath

    xpath是xml path的缩写,它是一种表达式语言,用于定位xml树中的结点。

    2 “/”和“//”的区别

    比如"/html/body",取出来的就是该html的body部分所有的内容。

    “/”是用来构成绝对路径的,从root结点开始。

    “//”是相对寻址的,比如//p,会找到html中的所有的<p></p>,无论它们在什么位置。

    3 predicate

    方括号[xxx]被称为predicate,它作用于一个子集合,用于进一步缩小该子集合的范围。

    比如://list/item,将会将list node下所有的item node都选定,但是如果加上一个predicate,//list/item[@lang],那么就加了一个条件,该item必须有@lang这个属性,这样将不满足条件的item node给剔除掉了。

    4 axis

    axis是用来进行更加精准定位的。axis定义了一个相对于当前node的一个node  set,也就是说,它基于的对象是node。

    首先通过绝对路径定位一个比较好定位的node,然后通过axis进行精准定位。

    例如:

    //div[@id='div1']/child::img

    首先找到id为div1的div,然后找到它所有的child node中名字为img的node。

    5 xml的node

    5.1 基本的node

    element node和attribute node

    <bookstore> (root element node)

    <author>J K. Rowling</author> (element node)

    lang="en" (attribute node)

    5.2 node之间的关系,axis就是用的node之间的关系进行的定位

    parent,每个element node和attribute node都只有一个parent。

    child,每个element node有0个、1个或者多个child node。

    ancester,所有的祖先的集合,一直到root node。

    descendant,所有的child的集合,一直到叶子,即到属性node。

    6 有用的函数

    6.1 last()

    一个集合中的最后一个元素,用于predicate中。

    6.2 text()

    获取一个node中的text()。

    7 表达式

    >,=,|

    “|”两个集合的并集。

    8 一个path中使用了两个“//”是什么意思

    两个都是任意的意思,只是前面一个的任意的范围比后面一个要大,后面一个任意是在前面的基础上进一步任意。

  • 相关阅读:
    剑指offer二十二之从上往下打印二叉树
    剑指offer二十一之栈的压入、弹出序列
    Hadoop简介与伪分布式搭建—DAY01
    getopt解析命令行参数一例:汇集多个服务器的日志
    软件开发:如何表达和维护大型逻辑
    编程语言与可复用性
    危险的 SQL
    谁终将点燃闪电,必长久如云漂泊
    如何使错误日志更加方便排查问题
    生活的诀窍:任务激励式学习法和短小目标法
  • 原文地址:https://www.cnblogs.com/hustdc/p/7798927.html
Copyright © 2020-2023  润新知