zoukankan      html  css  js  c++  java
  • xpath学习笔记

    符号
    . //表示当前节点
    .. //父节点
    / //根目录
    // //节点下的任意位置 高级应用:"ul//em" 表示ul节点下任意位置的em
    @ //含某属性的节点 //@title 那么 <li class='a' title='1'>满足 和其他组合在一起就报错
    | //a|b 选择a和b元素
    * //所有节点
    node() //所有节点 还包含里面的值 比如<i>1</i> 1也是一个对象元素 这是和*的不同之处
    text() //所有文字节点 node() 其实 比*多包含了 text()
    child::*/child::price //孙节点

    谓语
    [1] //第几个元素 div[1]第一个div元素
    [last()]
    [last()-1]
    [position()<n] //前n个元素 //li[position()<=2] 表示前2个元素
    [@attr] //含某属性的元素 //li[@class] 表示含class属性的li
    [@attr='attrVal'] //含某属性且属性值确定的元素 //li[@class='a']
    [nodename] //含指定子元素的元素 //*[em] 含em子元素的任意元素
    [nodename>n] //含指定子元素且子元素值大于固定值的元素 //*[i>2] html:<div><i>5</></div>
    [nodename>n]/nodename //上面一条中的子节点

    通配符
    contains //内容包含 em[contains(text(),'1')] 那么html:<em>123</em>满足
    starts-with //内容包含 em[starts-with(text(),'1')] 那么html:<em>123</em>满足
    descendant //所有后代 孙子 的孙子 也包含
    ancestor //所有的前辈


    其他
    //* //所有节点
    /*/* //所有位于第二层的节点

  • 相关阅读:
    2017年暑期实习生招聘(百度)——两道编程题
    携程笔试中的一道编程题
    软工假期预习作业1
    假期作业
    FAFU 1557
    HDU 1028
    POJ 3126
    HDU5108
    POJ 1716
    HDU4790
  • 原文地址:https://www.cnblogs.com/hack0573/p/4244912.html
Copyright © 2011-2022 走看看