XPath 入门

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

基本概念

  • Node

    
    <?xml version="1.0" encoding="ISO-8859-1"?>
    
    <bookstore>  //文档节点
    
    <book>
      <title lang="en">Harry Potter</title>
      <author>J K. Rowling</author>  //元素节点
      <year>2005</year>
      <price>29.99</price>
    </book>
    
    </bookstore>
    
    

    <bookstore> (文档节点)

    <author>J K. Rowling</author> (元素节点)

    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语法

        <?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> 
  • 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容