首页 > 代码库 > xpath语法学习笔记-09052016

xpath语法学习笔记-09052016

<?xmlversion="1.0"encoding="ISO-8859-1"?>
<catalog>
  <cd country="USA">
    <title>EmpireBurlesque</title>
    <artist>BobDylan</artist>
    <price>10.90</price>
  </cd>


  <cd country="UK">
    <title>Hideyourheart</title>
    <artist>BonnieTyler</artist>
    <price>9.90</price>
  </cd>


  <cd country="USA">
    <title>GreatestHits</title>
    <artist>DollyParton</artist>
    <price>9.90</price>
  </cd></catalog>
</catalog>

 

1、如果XPath的开头是一个斜线(/)代表这是绝对路径。 /catalog/cd/price

如果开头是两个斜线(//)代表文件中所有符合模式的元素都会被选出来,即使是处于树中不同的层级也会被选出来。 //cd

使用星号(*),可以选择未知的元素。

a.选出catalog/cd的所有子元素: /catalog/cd/*

b.选出所有catalog的子元素中,包含有price作为子元素的元素:

/catalog/*/price

c.选出有两层父节点,叫做price的左右元素:

/*/*/price

d.选出文件中的左右元素:

//*

2、选择分支:使用中括号可以选择分支。

a.从catalog的子元素中取出第一个叫做cd的元素,XPath的定义中木有第0个元素说法:/catalog/cd[1]     

b.选择catalog中的最后一个cd元素:/catalog/cd[last()]

c.选出含有price子元素的所有 /catalog/cd元素:/catalog/cd[price]

d.选出price元素的值等于10.90的所有/catalog/cd元素:/catalog/cd[price=10.90]

e.选出price元素的值等于10.90的所有/catalog/cd元素的price元素:/catalog/cd[price=10.90]/price

3、选择一个以上的路径:使用or操作数(|)可以选择一个以上的路径 

a.选择所有title以及artist元素:

/catalog/cd/title|catalog/cd/artist

//title|//artist

b.选择所有title以及artist以及price元素

//title|//artist|//price

4、选择属性:都是以@开头

a.选择所有叫country的属性: //@country

b.选择所有含有country这个属性的cd元素://cd[@country]

c.选择含有属性的所有cd元素://cd[@*]

d.选择country属性值为UK的cd元素://cd[@country=‘UK‘]

xpath语法学习笔记-09052016