• XPath语法


    XPath 是XML 的查询语言,和SQL 的角色很类似。以下面XML 为例,介绍XPath 的语法

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <catalog>
        <cd country="USA">
            <title>Empire Burlesque</title>
            <artist>Bob Dylan</artist>
        <price>10.90</price>
      </cd>
      <cd country="UK">
        <title>Hide your heart</title>
        <artist>Bonnie Tyler</artist>
        <price>9.90</price>
      </cd>
      <cd country="USA">
        <title>Greatest Hits</title>
        <artist>Dolly Parton</artist>
        <price>9.90</price>
      </cd></catalog>
    </catalog>            
    

    如果XPath 的开头是一个斜线(/)代表这是绝对路径。如果开头是两个斜线(//)表示文件中所有符合模式的元素都
    会被选出来,即使是处于树中不同的层级也会被选出来

    1. 要选catalog 底下的cd 中所有price 元素可以用:
      /catalog/cd/price

    2. 选出文件中所有叫做cd 的元素

      //cd

    3. 选出/catalog/cd 的所有子元素:

        /catalog/cd/*

    4. 会选出所有catalog 的子元素中,包含有price 作为子元素的元素

      /catalog/*/price

    5. 选出有两层父节点,叫做price 的所有元素

        /*/*/price

    6. 选择出文件中的所有元素

        //*

        注意: //存取不分层级的元素    *存取未知元素

    7. 从catalog 的子元素中取出第一个叫做cd 的元素

        /catalog/cd[1]

    8. catalog 中的最后一个cd 元素

        /catalog/cd[last()]

    9. 选出含有price 子元素的所有/catalog/cd 元素

        /catalog/cd/[price]

    10. 选出price 元素的值等于10.90的所有/catalog/cd 元素

       /catalog/cd/[price=10.90]

    11. 选出price 元素的值等于10.90的所有/catalog/cd 元素的price 元素

      /catalog/cd[price=10.90]/price

    12. 选择以下2个路径

       /catalog/cd/title | catalog/cd/artist

    13. 选择所有title 以及artist 以及price 元素

     //title | //artist | //price

    选择属性

    1. 选择文件中所有叫做country 的属性

      //@country

    2. 选择所有含有country 这个属性的cd 元素:
      //cd[@country]
    3.  以下语法选择出含有属性的所有cd 元素
      //cd[@*]
    4.  以下语法选择出country 属性值为UK 的cd 元素
      //cd[@country='UK']

    5.

  • 相关阅读:
    HDU5643-King's Game
    KM算法详解+模板
    二分图最大匹配(匈牙利算法)
    二分图判断(交叉染色)
    能被2、3、4、5、6、7、8、9 等数整除的数的特征
    Codeforces Round #306 (Div. 2) ABCDE(构造)
    HDU5627--Clarke and MST (bfs+位运算)
    Educational Codeforces Round 82 (Rated for Div. 2)
    2020 CCPC Wannafly Winter Camp Day5
    Codeforces Round #618 (Div. 2)
  • 原文地址:https://www.cnblogs.com/wujixing/p/5624051.html
Copyright © 2020-2023  润新知