XPath 規(guī)則編輯
簡(jiǎn)介
XPath即為XML路徑語(yǔ)言,它是一種用來(lái)確定XML文檔中某部分位置的語(yǔ)言。
XPath基于XML的樹(shù)狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹(shù)中找尋節(jié)點(diǎn)的能力。起初XPath的提出的初衷是將其作為一個(gè)通用的、介于XPointer與XSL間的語(yǔ)法模型。但是XPath很快的被開(kāi)發(fā)者采用來(lái)當(dāng)作小型查詢語(yǔ)言。
語(yǔ)法
選取節(jié)點(diǎn) XPath 使用路徑表達(dá)式在 XML 文檔中選取節(jié)點(diǎn)。節(jié)點(diǎn)是通過(guò)沿著路徑或者 step 來(lái)選取的。
下面列出了最有用的路徑表達(dá)式:
表達(dá)式
|
描述
|
---|---|
nodename
|
選取此節(jié)點(diǎn)的所有子節(jié)點(diǎn)。
|
/
|
從根節(jié)點(diǎn)選取。
|
//
|
從匹配選擇的當(dāng)前節(jié)點(diǎn)選擇文檔中的節(jié)點(diǎn),而不考慮它們的位置。
|
.
|
選取當(dāng)前節(jié)點(diǎn)。
|
..
|
選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)。
|
@
|
選取屬性。
|
在下面的表格中,我們已列出了一些路徑表達(dá)式以及表達(dá)式的結(jié)果:
路徑表達(dá)式
|
結(jié)果
|
---|---|
bookstore
|
選取 bookstore 元素的所有子節(jié)點(diǎn)。
|
/bookstore
|
選取根元素 bookstore。
注釋?zhuān)杭偃缏窂狡鹗加谡备? / ),則此路徑始終代表到某元素的絕對(duì)路徑!
|
bookstore/book
|
選取屬于 bookstore 的子元素的所有 book 元素。
|
//book
|
選取所有 book 子元素,而不管它們?cè)谖臋n中的位置。
|
bookstore//book
|
選擇屬于 bookstore 元素的后代的所有 book 元素,而不管它們位于 bookstore 之下的什么位置。
|
//@lang
|
選取名為 lang 的所有屬性。
|
示例
假如你要獲取數(shù)據(jù)的結(jié)構(gòu)如下:
<div id="demo"> <a href="http://www.travelsc.cn/d.html"> <span class="title">iotheme</span> </a> <span>一為主題<span> <p rel="pnode">熱榜api</p> </div>
獲取內(nèi)容的規(guī)則為:
# 獲取標(biāo)題內(nèi)容 '//div[@id="demo"]/a/span[@class="title"]' # 獲取文章鏈接 '//div[@id="demo"]/a/@href' # 獲取p內(nèi)容 '//div[@id="demo"]/p[@rel="pnode"]'apiXPath熱榜