XPath 規(guī)則編輯

2021-07-31 發(fā)布于熱榜 API

簡(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"]'

參考教程-->

仍然有問(wèn)題? 我們要如何幫助您?
One Nav 導(dǎo)航主題