XPath基礎知識

2021-07-03 01:07:07 字數 3285 閱讀 6749

1. xpath中的符號

符號

說明

示例

示例說明

/

表示從根節點開始選擇

/pets

選擇根節點

pets

表示節點和子節點之間的間隔符

/pets/dog 選擇

pets

節點下的

dog節點

//xx

表示從整個

xml文件中查詢,而不考慮當前節點位置

//price

選擇文件中所有的

price節點

.

單個英文半形句點表示選擇當前節點

/pets/. 選擇

pets節點

..

雙點,表示選擇父節點

/pets/dog[0]/.. 表示

pets

節點,也就是第乙個

dog節點的父節點

@xx

表示選擇屬性

//dog/@color

表示選擇所有

dog節點的

color

屬性集合

[…]

中括號表示選擇條件,括號內為條件

//dog[@color=』white』] 所有

color

為white

的dog節點

//dog[/price<100] 所有

price

字節點值小於

100的

dog節點

中括號內數字為節點索引,類似

c#等語言中的陣列

,陣列下標是從

1開始的

//dog[1] 第

1個dog節點

//dog[last()]

最後乙個

dog節點,

last()

是xpath

內建函式

|

單豎槓表示合併節點結合

//dog[@color=』white』] | //cat[@color=』white』]

color

屬性為white

的dog

節點和color

屬性為white

的cat節點

*

星號表示任何名字的節點或者屬性

//dog/* 表示

dog節點的所有子節點

//dog/@* 表示

dog節點的所有屬性節點

2. xpath數**算符

+ 加號表示加 -

表示數字相減 *

表示乘以

div表示除以,這裡數學上的除號/已經被用作節點之間分隔符了

mod表示取餘

3. xpath邏輯運算子

=等於,相當於c#中的 ==

!=不等於

>

大於>=

大於等於

<

小於<=

小於等於

and並且 與關係

or或者 或關係

4.xpath axes從字面翻譯這個是xpath軸的意思,但根據我的理解這個翻譯成xpath節點關係運算關鍵字更合適,就是一組關鍵字加上::雙冒號表示和當前節點有關係的乙個或者一組節點.

使用語法: axisname::nodetest[predicate] 即軸名字::節點名字[取節點條件]

具體說明如下:

關鍵字 說明

示例示例說明

ancestor

當前節點的父祖節點

ancestor::pig

當前節點的祖先節點中的

pig節點

ancestor-or-self

當前節點以及其父祖節點

ancestor::pig

attribute

當前節點的所有屬性

attribute::weight

相當於@weight

,attribute::和@

是等價的

child

當前節點的所有字節點

child::*[name()!=』price』]

選擇名字不是

price

的子節點

descendant

子孫節點

descendant::*[@*]

有屬性的子孫節點

descendant-or-self

子孫節點以及當前節點

descendant-or-self::*

following

xml文件中當前節點之後的所有節點

following::*

following-sibling

當前節點的同父弟弟節點

following-sibling::

preceding

xml文件中當前節點之前的所有節點

preceding::*

namespace

選取當前節點的所有命名空間節點

namespace::*

parent

當前節點的父節點

parent::

相當於雙點..

preceding-sibling

當前節點之後的同父兄節點

preceding-sibling::*

self

當前節點

self::*

相當於單點.

5. 常用的xpath函式介紹:

在xpath表示式中常用的函式有下面兩個:

position() 表示節點的序號例如 //cat[position() = 2] 表示取序號為2的dog節點

last() 表示取最後乙個節點 //cat[last()] 

name() 表示當前節點名字 /pets/*[name() != 'pig'] 表示/pets下名字不是pig的子節點

6.注意

firebug生成的xpath中如果含有tbody標籤,需要把tbody去掉,否則不能正確獲取網頁的內容。如firebug生成的xpath為 /html/body/table/tbody/tr,那麼則需要修改為/html/body/table/tr。

xpath基礎知識點

from lxml import etree text 新華書店 harry potter 29.99 learning xml 39.95 python 大全 99.95 將字串物件轉換為xml物件才可以使用xpath html xml etree.html text print html xml...

C 基礎知識整理 基礎知識(2) 類

類,是物件導向語言的基礎。類的三大特性 封裝 繼承 多型。最基本的特性就是封裝性。程式設計師用程式描述世界,將世界的所有事物都看成物件,怎麼描述這個物件?那就是類了。也就是用類來封裝物件。用書上的話說,類是具有相同屬性和行為的物件的抽象。寶馬汽車 別克汽車 五菱之光汽車.基本具有相同的屬性和行為,所...

C 基礎知識整理 基礎知識(2) 類

類,是物件導向語言的基礎。類的三大特性 封裝 繼承 多型。最基本的特性就是封裝性。程式設計師用程式描述世界,將世界的所有事物都看成物件,怎麼描述這個物件?那就是類了。也就是用類來封裝物件。用書上的話說,類是具有相同屬性和行為的物件的抽象。寶馬汽車 別克汽車 五菱之光汽車.基本具有相同的屬性和行為,所...