association

XPath语法

XPath语法

Previous Next

XPath使用路径表达式定位XML文档内的节点。


XML示例文档

我们将使用如下的简单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表达式选择文档中所有的cd元素:

//cd



选择未知元素

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

下面的XPath表达式选择catalog元素下所有cd元素的所有子元素:

/catalog/cd/*

下面的XPath表达式选择catalog元素的孙子元素下所有的price元素:

/catalog/*/price

下面的XPath表达式选择有两个祖先的所有price元素:

/*/*/price

下面的XPath表达式选择文档中所有元素:

//*



选择分支

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

下面的XPath表达式选择catalog元素的第一个cd子元素:

/catalog/cd[1]

下面的XPath表达式选择catalog元素的最后一个子元素(注意:没有first()函数):

/catalog/cd[last()]

下面的XPath表达式选择catalog元素下含有price子元素的所有cd元素:

/catalog/cd[price]

下面的XPath表达式选择catalog元素下子元素price值等于10.90的所有cd元素:

/catalog/cd[price=10.90]

下面的XPath表达式选择catalog元素下price元素值等于10.90的所有cd元素的price元素:

/catalog/cd[price=10.90]/price



选择多个路径

通过在XPath表达式中使用|操作符,可以选择多个路径。

下面的XPath表达式选择catalog元素的子元素cd元素下所有的title和artist元素:

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

下面的XPath表达式选择文档中所有title元素和artist元素:

//title | //artist

下面的XPath表达式选择文档中所有title、artist、price元素:

//title | //artist | //price

下面的XPath表达式选择catalog元素的cd子元素下所有的title元素,以及文档中所有的artist元素:

/catalog/cd/title | //artist



选择属性

在XPath中,所有属性以前缀@指定。

下面的XPath表达式选择所有名为country的属性:

//@country

下面的XPath表达式选择所有含有country属性的cd元素:

//cd[@country]

下面的XPath表达式选择选择所有含有任何属性的cd元素:

//cd[@*]

下面的XPath表达式选择属性country等于UK的所有cd元素:

//cd[@country='UK']

摘自:
http://61.139.52.111:8090/kj/Manfeel/oltl/session1/session1-p02.htm

posted on 2008-03-05 10:12 扬扬 阅读(575) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2008年3月>
2425262728291
2345678
9101112131415
16171819202122
23242526272829
303112345

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜