Pugixml中的xpath遍歷

2021-09-18 06:01:04 字數 3023 閱讀 8955

目錄簡介

xpath – element

xpath – attribute

xpath – descendants

xpath – parent

xpath – wildcard

xpath – bar

xpath – predicates

pugixml支援xpath表示式,乙個xpath表示式可以在xml文件中定位任何型別的元素節點,以及屬性節點。要使用xpath,先簡單學習如何使用xpath表示式,建議教程:

例如,使用pugixml時,要定位"amount"子元素的xpath表示式為:/inventory/snack/chips/amount

簡單說下xpath表示式的注意要點:

每個元素之間用"/"分隔。

每個元素均是前乙個元素的子元素。

屬性需要以"@"開始。

可以使用絕對路徑,也可以使用相對路徑。絕對路徑以"/"開始,相對路徑以當前節點開始。

即選擇單個元素節點語法:/inventory/snack/chips/amount

try

}catch (pugi::xpath_exception& e)

catch (std::bad_alloc&)

即選擇單個屬性節點語法:/inventory/snack/chips/amount/@supplier

try

}catch (pugi::xpath_exception& e)

catch (std::bad_alloc&)

即選擇所有子孫節點語法,使用2個"/"符號:/inventory//amount

解釋匹配"inventory"節點下所有名稱為"amount"的子孫節點

try

}catch (pugi::xpath_exception& e)

catch (std::bad_alloc&)

即選擇節點語法,使用2個".."符號:/inventory//amount/..解釋匹配"inventory"節點下所有名稱為"amount"的子孫節點的父節點

try

}catch (pugi::xpath_exception& e)

catch (std::bad_alloc&)

解釋匹配"inventory"節點下所有的子節點

解釋匹配"inventory"節點下所有的子節點的再下一級所有子節點(注意,僅包含最後乙個*所匹配的節點

try

}catch (pugi::xpath_exception& e)

catch (std::bad_alloc&)

即使用管道符"|"符號,將兩個或多個xpath表示式組合成乙個表示式:/inventory/*/*|/inventory/*

解釋匹配"inventory"節點下所有的子節點,以及"inventory"節點下所有的子節點的再下一級所有子節點

try

}catch (pugi::xpath_exception& e)

catch (std::bad_alloc&)

predicates—我不知道應該翻譯為什麼,但可以知道這是過濾條件。predicates需要位於"[ ]"符號中,作為過濾的條件。

1. 子節點作為條件的語法:

parent[childsometesthere]

例如:inventory/drink/lemonade[amount>15]

解釋:匹配滿足條件的"lemonade"子節點,條件為"amount"子節點的文字value大於15

2. 屬性節點作為條件的語法:

element[element's attributesometesthere]

例如:inventory/drink/lemonade[@supplier='store']

解釋匹配滿足條件的"lemonade"子節點,條件為"lemonade"子節點的"supplier"屬性節點值為"strore"

3. 當前節點作為條件的語法:

element[.sometesthere]

例如:inventory/drink/pop/amount[. < 20]

解釋匹配滿足條件的"amount"子節點,條件為當前"amount"節點的文字value小於20

try

}catch (pugi::xpath_exception& e)

catch (std::bad_alloc&)

jackrabbit中Xpath的用法

root smiky 20boy 歐陽瘋24 girl root xpath的七種節點型別 元素,屬性,文字,文件節點 即根節點 命名空間,注釋,處理指令 節點關係 父 子 兄弟 先輩 後代 xpath常用符號 從根節點開始選 從匹配選擇的當前節點擊擇文件中的節點,而不考慮它們的位置 example...

關於xpath中的 和

在今天之前,一直沒有注意過.的用法,習慣性的都是用 來查元素。比如在 menu title 中找id div1 的 div 我們可以用 div id div1 webdriver webelement we driver.findelement by.xpath div id div1 如果要繼續找...

XML中XPath的應用

xpath即為xml路徑語言,它是一種用來確定xml 標準通用標記語言的子集 文件中某部分位置的語言。xpath基於xml的樹狀結構,提供在資料結構樹中找尋節點的能力。起初 xpath 的提出的初衷是將其作為乙個通用的 介於xpointer與xslt間的語法模型。但是 xpath 很快的被開發者採用...