zoukankan      html  css  js  c++  java
  • 1爬虫第一天xpath

    1.xpath简介:

      xpath节点是xpath中的专业术语,是某些特性或者属性的总称。总共包含7中类型·:元素、属性、文本、命名空间、处理指令、注释以及文档节点等。在xml文档中根节点或者文档节点被形容为数的根。

    <?xml version ='1.0' encoding='utf-8'>
    <bookstore>
        <book>
            <title lang="1234">Haryybooot</title>
            <author>jkworn</author>
            <year>2004</year>
            <price>30</price>
        </book>
    </bookstore>
    View Code

      1.节点分析:

           <bookstore> 被称为数的跟或者文档节点

          <title lang="1234">Haryybooot</title>被称为元素节点

           lang="1234"被称为属性节点

      2.关系分析:节点之间存在父亲(parent)、儿子(children)、同胞(sibling)、父亲的父亲。。。。、儿子的儿子/。。。。

        其中book是title、author、price的父亲,title、author、price又是同胞的兄弟,title的父亲的父亲是bookstore

    2.xpath 语法:

      1.xpath 是使用路径来表达选取xml文档的节点或者节点集的,节点是通过沿着path或者step来进行选取的:

    <?xml version ='1.0' encoding='utf-8'>
    <bookstore>
        <book>
            <title lang="1234">Haryybooot</title>
            <author>jkworn</author>
            <year>2004</year>
            <price>30</price>
        </book>
        <book>
            <title wusir="1234">hejijkji</title>
            <author>alex</author>
            <year>2004</year>
            <price>30</price>
        </book>
    </bookstore>
    View Code

      2.路径表达式:

    nodename 选取此节点的所有子节点
    / 从根节点选取
    // 从匹配选择的当前节点选择文档中的节点而不考虑他们的位置
    . 选取当前节点
    .. 选取当前节点的父节点
    @ 选取属性
       

      3.实例讲述:

      bookstore      选取bookstore元素的所有子节点

      /bookstore       选取根元素bookstore

      bookstore/book     选取属于bookstore的子元素的book所有元素

      //book         选取所有book元素

      bookstore//book    选择属于bookstore 元素后代的所有book元素,不管它位于bookstore的什么位置

      //@lang          选取名为lang的所有属性

      4.在进行查询的时候有时候我们需要某个特定的标签这个时候我们需要进行元素的准确定位:

      bookstore/book[1]     选取属于bookstore的子元素的book的第一个元素

      bookstore/book [last()-1]   选取属于bookstore的子元素的book倒数第二个元素

    ··  bookstore/book [position<3]   选取属于bookstore的子元素的book第一个和第二个元素

      //title[@lang]             选取拥有属性名为lang的title元素

      //title[@lang='eng']          选取所有的title元素并且拥有属性为lang值为eng的所有节点

      /bookstore/book[price>30]        选取bookstore下所有book元素并且price元素的值必须大于30

      5.选取·位置节点:

      *     匹配所有的·节点

      @*   匹配所有的属性节点

      node()  匹配任何类型的节点

      6.在进行文件获取的时候有时候我们需要后去多个文件的信息我们这个时候就可以使用 |

      //book/title| //book/price    选取book元素下所有的title和price元素

      7.轴:可以用于定义当前节点的节点集:

      1.attribute    选取当前节点的所有属性

      2.child     选取当前节点的所有子元素

      3.following  选取当前节点后的所有同胞的所有节点

      4.parent    选取当前节点的所有父节点

    3.实例介绍:使用

  • 相关阅读:
    eclipse中的TODO和FIXME
    使用mui框架后a标签无法跳转
    java.lang.OutOfMemoryError: Java heap space异常
    mysql中表触发器的简单使用
    编写第一个 Java 程序
    QDialog类exec()与show()的区别
    Qt中信号槽connect的多种类型
    2.3 UML活动图
    2.2 UML用例模型
    2.1 uml序言
  • 原文地址:https://www.cnblogs.com/ab461087603/p/12762726.html
Copyright © 2011-2022 走看看