代码之家  ›  专栏  ›  技术社区  ›  Shawn

选择一系列节点的xpath是什么?

  •  34
  • Shawn  · 技术社区  · 16 年前

    嗨,我有一个XML文件,其结构如下:

     <foo>
         <bar></bar>
         <bar></bar>
         ...
    </foo>
    

    我不知道如何获取一系列节点。有人能给我一个XPath表达式的例子吗?它可以抓取100-200个bar节点。

    3 回复  |  直到 10 年前
        1
  •  60
  •   Dimitre Novatchev    16 年前

    使用 :

    /*/bar[position() >= 100 and not(position() > 200)]
    

    做笔记 :

    1. 正是 bar 选择位置100至200(含)的元素。

    2. 此xpath表达式的计算速度可能比使用 // 缩写,因为后者会对根为上下文节点的树进行完全扫描。 总是尽量避免使用 / / 缩写 如果可能的话。

        2
  •  9
  •   kennytm    16 年前
    //foo/bar[100 <= position() and position() < 200]
    
        3
  •  6
  •   CiaPan    10 年前

    不是 fn:subsequence 最好的方法是什么?

    subsequence( /foo/bar, 100, 101 )
    

    返回从位置100到200的所有项,即101个项(如果源序列较短,则小于或等于)。