zoukankan      html  css  js  c++  java
  • XPath element 格式

    一、xpath表达式的基本格式

    xpath通过“路径表达式”(Path Expression)来选择节点。

    # 斜杠(/)作为路径内部的分割符。

    # 同一个节点有绝对路径和相对路径两种写法。

    # 绝对路径(absolute path)必须用“/”起首,后面紧跟根节点,比如/step/step/...。

    # 相对路径(relative path)则是除了绝对路径以外的其他写法,比如 step/step,也就是不使用“/”起首。

    # “.”表示当前节点。

    # “..”表示当前节点的父节点

    二、选择节点的基本规则

    - nodename(节点名称):表示选择该节点的所有子节点

    - “/”:表示选择根节点

    - “//”:表示选择任意位置的某个节点

    - “@”: 表示选择某个属性

    三、实例

    先看一个XML实例文档。

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

    <bookstore>

      <book>
        <title lang="eng">Harry Potter</title>
        <price>29.99</price>
      </book>

      <book>
        <title lang="eng">Learning XML</title>
        <price>39.95</price>
      </book>

    </bookstore>

    [例1]

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

    [例2]

    /bookstore :选取根节点bookstore,这是绝对路径写法。

    [例3]

    bookstore/book :选取所有属于 bookstore 的子元素的 book元素,这是相对路径写法。

    [例4]

    //book :选择所有 book 子元素,而不管它们在文档中的位置。

    [例5]

    bookstore//book :选择所有属于 bookstore 元素的后代的 book 元素,而不管它们位于 bookstore 之下的什么位置。

    [例6]

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

    四、xpath的谓语条件(Predicate)

    所谓“谓语条件”,就是对路径表达式的附加条件。

    所有的条件,都写在方括号“[]”中,表示对节点进行进一步的筛选。

    [例7]

    /bookstore/book[1] :表示选择bookstore的第一个book子元素。

    [例8]

    /bookstore/book[last()] :表示选择bookstore的最后一个book子元素。

    [例9]

    /bookstore/book[last()-1] :表示选择bookstore的倒数第二个book子元素。

    [例10]

    /bookstore/book[position()<3] :表示选择bookstore的前两个book子元素。

    [例11]

    //title[@lang] :表示选择所有具有lang属性的title节点。

    [例12]

    //title[@lang='eng'] :表示选择所有lang属性的值等于“eng”的title节点。

    [例13]

    /bookstore/book[price] :表示选择bookstore的book子元素,且被选中的book元素必须带有price子元素。

    [例14]

    /bookstore/book[price>35.00] :表示选择bookstore的book子元素,且被选中的book元素的price子元素值必须大于35。

    [例15]

    /bookstore/book[price>35.00]/title :表示在例14结果集中,选择title子元素。

    [例16]

    /bookstore/book/price[.>35.00] :表示选择值大于35的“/bookstore/book”的price子元素。

    五、通配符

    # “*”表示匹配任何元素节点。

    # “@*”表示匹配任何属性值。

    # node()表示匹配任何类型的节点。

    [例17]

    //* :选择文档中的所有元素节点。

    [例18]

    /*/* :表示选择所有第二层的元素节点。

    [例19]

    /bookstore/* :表示选择bookstore的所有元素子节点。

    [例20]

    //title[@*] :表示选择所有带有属性的title元素。

    六、选择多个路径

    用“|”选择多个并列的路径。

    [例21]

    //book/title | //book/price :表示同时选择book元素的title子元素和price子元素。

  • 相关阅读:
    hdu 5646 DZY Loves Partition
    bzoj 1001 狼抓兔子 平面图最小割
    poj 1815 Friendship 最小割 拆点 输出字典序
    spoj 1693 Coconuts 最小割 二者取其一式
    hdu 5643 King's Game 约瑟夫环变形
    约瑟夫环问题
    hdu 5642 King's Order
    CodeForces 631C Report
    1039: C语言程序设计教程(第三版)课后习题9.4
    1043: C语言程序设计教程(第三版)课后习题10.1
  • 原文地址:https://www.cnblogs.com/alwaysyouare/p/3372111.html
Copyright © 2011-2022 走看看