xpath简单语法

使用如下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>



定位节点:
XML文档可以看作是一个节点树(非常类似于计算机的树形文件夹)。
XPath使用模式表达式识别XML文档里的节点。一个XPath模式是一个以斜线分隔的子元素名列表,用于描述XML文档的一个路径。模式选择匹配该路径的元素。
下面的XPath表达式选择catalog元素的所有cd元素的所有price元素:

/catalog/cd/price      //如果路径以一个斜线(/)开始,代表相对于一个元素的绝对路径

注意: 如果路径以两个斜线开始,表示选择文档中所有符合该条件的元素(即使它们在不同的XML树的级别)!下面的XPath表达式选择catalog元素的所有cd元素的所有price元素:
//cd             // 如果路径以两个斜线开始,表示选择文档中所有符合该条件的元素(即使它们在不同的XML树的级别)!下面的XPath表达式选择catalog元素的所有cd元素的所有price元素:


选择未知元素
通配符(*)用来选择未知XML元素。

/catalog/cd/*                              //XPath表达式选择catalog元素下所有cd元素的所有子元素
/catalog/*/price                             //XPath表达式选择catalog元素的孙子元素下所有的price元素
/*/*/price                              //XPath表达式选择有两个祖先的所有price元素
//*                                     //XPath表达式选择文档中所有元素


选择分支
通过在XPath表达式中使用方括号可以进一步地指定一个元素。

/catalog/cd[1]                          //XPath表达式选择catalog元素的第一个cd子元素
/catalog/cd[last()]                      //XPath表达式选择catalog元素的最后一个子元素
/catalog/cd[price]                      //XPath表达式选择catalog元素下含有price子元素的所有cd元素
/catalog/cd[price=10.90]                     //XPath表达式选择catalog元素下子元素price值等于10.90的所有cd元素
/catalog/cd[price=10.90]/price               //XPath表达式选择catalog元素下price元素值等于10.90的所有cd元素的price元素



选择多个路径:
通过在XPath表达式中使用|操作符,可以选择多个路径。
下面的XPath表达式选择catalog元素的子元素cd元素下所有的title和artist元素:

/catalog/cd/title | /catalog/cd/artist              //XPath表达式选择catalog元素的子元素cd元素下所有的title和artist元素
//title | //artist                                                 //XPath表达式选择文档中所有title元素和artist元素:



选择属性:
在XPath中,所有属性以前缀@指定。
下面的XPath表达式选择所有名为country的属性:

//@country                             //XPath表达式选择所有名为country的属性
//cd[@country]                           //XPath表达式选择所有含有country属性的cd元素:
//cd[@*]                               //XPath表达式选择选择所有含有任何属性的cd元素
//cd[@country='UK']                     //XPath表达式选择属性country等于UK的所有cd元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值