XPath 規(guī)則編輯

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

簡介

XPath即為XML路徑語言,它是一種用來確定XML文檔中某部分位置的語言。

XPath基于XML的樹狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹中找尋節(jié)點的能力。起初XPath的提出的初衷是將其作為一個通用的、介于XPointer與XSL間的語法模型。但是XPath很快的被開發(fā)者采用來當(dāng)作小型查詢語言。

語法

選取節(jié)點 XPath 使用路徑表達式在 XML 文檔中選取節(jié)點。節(jié)點是通過沿著路徑或者 step 來選取的。

下面列出了最有用的路徑表達式:

表達式
描述
nodename
選取此節(jié)點的所有子節(jié)點。
/
從根節(jié)點選取。
//
從匹配選擇的當(dāng)前節(jié)點選擇文檔中的節(jié)點,而不考慮它們的位置。
.
選取當(dāng)前節(jié)點。
..
選取當(dāng)前節(jié)點的父節(jié)點。
@
選取屬性。
在下面的表格中,我們已列出了一些路徑表達式以及表達式的結(jié)果:
路徑表達式
結(jié)果
bookstore
選取 bookstore 元素的所有子節(jié)點。
/bookstore
選取根元素 bookstore。
注釋:假如路徑起始于正斜杠( / ),則此路徑始終代表到某元素的絕對路徑!
bookstore/book
選取屬于 bookstore 的子元素的所有 book 元素。
//book
選取所有 book 子元素,而不管它們在文檔中的位置。
bookstore//book
選擇屬于 bookstore 元素的后代的所有 book 元素,而不管它們位于 bookstore 之下的什么位置。
//@lang
選取名為 lang 的所有屬性。

 

示例

假如你要獲取數(shù)據(jù)的結(jié)構(gòu)如下:

<div id="demo">
    <a href="http://m.95zz02.com/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"]'

參考教程-->

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