XPath语法定义及其使用介绍

 XPath语法定义及其使用介绍,假定有一个book.xml文件,其定义如下:
<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
     <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
           <title>The Autobiography of Benjamin Franklin</title>
           <author>
                 <first-name>Benjamin</first-name>
                 <last-name>Franklin</last-name>
           </author>
           <price>8.99</price>
     </book>
     <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
           <title>The Confidence Man</title>
           <author>
                 <first-name>Herman</first-name>
                 <last-name>Melville</last-name>
           </author>
           <price>11.99</price>
     </book>
     <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
           <title>The Gorgias</title>
           <author>
                 <name>Plato</name>
           </author>
           <price>9.99</price>
     </book>
</bookstore>
XPath语法定义:
(1)“/”代表根节点路径,一般是从根节点开始检索。即是绝对路径
例如: /bookstore 代表要查找bookstore根节点下边的内容
    bookstore/book 表示查找bookstore根节点下边的book节点的内容
    /*/*/price 表示查找文档中所有的price子节点。
(2)"//" 代表目前文档路径
  例如:
      //book 表示要查找book节点,如果要检索一个节点的话,就返回第一个,否则就返回所有的book节点信息。
      //book[@genre='novel'],表示查找book节点中,属性名为“novel”的book节点。
(3) "@" 表示要查找属性
  比如 查找book节点下边genre属性名为“novel”的节点
  bookstore/book [@genre='novel']
  如果要倒序查找的话,可以这样写:descendant::book[@genre='novel']
(4) /bookstore/book[price=11.99]
    查找bookstore下面book节点中price节点值为11.99的节点
/bookstore/book [last()]
查找bookstore下面的最后一个book节点

选出含有price子元素的所有/bookstore/book元素。
/bookstore/book [price]

选出price元素的值等於11.99的所有/bookstore/book元素 的price元素
/bookstore/book [price=11.99]/price

选择属性
属性都是以@开头。例如选择文件中所有叫做ISBN的屬性:
//@ISBN

选择所有含有ISBN这个属性的book元素:
//book[@ISBN]

选择含有属性的所有book元素
//book[@*]

选择出ISBN属性为的book元素
//book[@ISBN='0-201-63361-2']
 
本文来自: IT知道网(http://www.itwis.com) 详细出处参考:http://www.itwis.com/html/programme/xml/20080424/1357.html

转载于:https://my.oschina.net/cys/blog/6010

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值