XPath 入门

参考自http://www.w3school.com.cn/xpath/index.asp

基本概念

  • Node

    
    
    
      //文档节点
    
    
      Harry Potter
      J K. Rowling  //元素节点
      2005
      29.99
    
    
    
    
    

    (文档节点)

    J K. Rowling (元素节点)

    lang="en" (属性节点)

  • 基本值 (或称原子值,Atomic value)

    • J K. Rowling 就是基本值
  • 节点关系

    • Parent 每个元素都有一个父

      • book 元素是 title、author、year 以及 price 元素的父:
    • Children 元素节点可能有0个一个或多个子。

    • 同胞(Sibling)

      • title、author、year 以及 price 元素都是同胞:
    • 先辈(Ancestor):某节点的父、父的父,等等。

      • title 元素的先辈是 book 元素和 bookstore 元素

XPath语法

        
        
        
        Harry Potter
        29.99
        
        
        Learning XML
        39.95
        
         
  • nodename 获取所有节点的子节点

    • jiXML?.xPath("book")
  • / 从根节点选取

    • jiXML?.xPath("/bookstore")选取根元素 bookstore。
  • // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。

    • jiXML?.xPath("//title")
    • bookstore//book 选择属于 bookstore 元素的后代的所有 book 元素
  • @ 选取属性

    • jiXML?.xPath("//@lang")

谓词

  • 选择已知节点

    • /bookstore/book[1]
    • /bookstore/book[last()]
    • /bookstore/book[last()-1]
    • /bookstore/book[position()<3]
    • //title[@lang]
    • //title[@lang='eng']
    • /bookstore/book[price>35.00]
    • /bookstore/book[price>35.00]/title
  • 选择位置节点

    • *匹配任何元素节点。
      • /bookstore/* : 选取 bookstore 元素的所有子元素。
      • //* 选取文档中所有元素
    • @* 匹配任何属性节点
      • //title[@*] : 选取所有带有属性的 title 元素。
  • 取出若干路径 : 通过在路径表达式中使用“|”运算符,您可以选取若干个路径

    • //book/title | //book/price
    • //title | //price

你可能感兴趣的:(XPath 入门)