XPath學習總結

2021-08-03 18:29:05 字數 2310 閱讀 4225

一.學習xpath的先決條件

1.為什麼要用xpath

為了使乙個xml文件變得更加有用,它的內容常常需要呈現其他格式。可能我們需要把它的內容載入到乙個web頁、乙份時事通訊或其他的列印出版物;可能文件需要公升級到乙個它所符合的更新的dtd版本,或者通過使用其他的xml詞彙傳送給商業夥伴;或者可能資料需要變為可利用的,以便載入到乙個與xml無關的電子資料表或遺產資料庫。產生所有這些xml的內容為基礎的表單變化的普遍接受的標準是「可擴充套件樣式表語言轉換(extensible stylesheet language transformations,xslt)」。

xslt與xml路徑語言(xml path language)一致,用於定位乙個xml文件的特定部分,讓我們能夠在幾乎任何的目標環境中,容易地再利用我們的文件內容。

xpath採用類似於檔案路徑的表示式,與dom相比可以快速定位xml文件中的內容,dom需要迭代查詢節點,效率低下。

2.節點和節點型別

首先明確一下,節點和元素不是乙個概念,在xml標準中沒有節點的定義,是在dom中按樹型結構來組織xml文件,才引入了節點的概念。

在dom中節點和元素不是等價的。「元素」是指一對標記(tag)及其內部包含的字串值的總和,例如下面這就是乙個元素:

china

但是它卻不是乙個節點,而是兩個。第乙個節點是節點,它的值是null;第二個節點是乙個文字節點(節點名是#text),它的值是"china\n"。文字節點是節點的子節點。

乙個節點是乙個xml文件的乙個離散的邏輯部件,乙個節點可以在他們的範圍內包含其他的相同或不同節點型別的節點。例如,如下是乙個表示雇員資訊的xml文字:

以下是乙個以xml為基礎的樹型結構,他的每個方框相當於乙個節點:

二.xpath(xml path language)標準

xpath是在2023年11月16日和xslt一起成為正式標準的。xpath是用作xslt和xpointer的對xml文件各部分進行定位的語言。它給xslt和xpointer(xml檔案內部鏈結語言)提供乙個共同、整合的定位語法,用來定位xml檔案中各個部位。

xpath除了提供一套定位語法之外,還包括一些函式,它們提供基本的數字運算、布林運算和字串處理功能。

xpath使用乙個緊湊的、非xml的語法來方便實現xpath在xml屬性值中的使用,它基於xml文件的邏輯結構,在該結構中進行導航。除了用於定位,xpath 自身還有乙個子集能用於進行匹配,它能驗證乙個節點是否匹配某個模式。xpath把乙個xml文件看成乙個樹或節點的模型。

節點的型別可以有多種,包括元素節點、屬性節點和文字節點。

xpath的基本語法由表示式構成。在計算表示式的值之後產生乙個物件,這種物件有以下四種基本型別:節點集合、布林型、數字型和字串型 。

表示式的計算依據上下文的出現,xslt和xpointer中分別規定了xpath表示式將在怎樣的情況下出現。這些上下文的關係包括:節點、一對正整數(表明位置和大小)、一套變數繫結集合、函式庫以及規定表示式範圍的名域宣告。

其中,變數繫結是從標量名稱到變數值的對映。變數的值是乙個物件,可以是表示式可能得到的各種型別,也可以是其他沒有規定的型別。在函式庫中,每個函式有零個或多個引數,並返回乙個結果。

xpath定義了所有支援工具都必須實現的核心函式庫。其中的函式的引數和結果都是上面涉及的四種基本型別。當然xslt 和xpointer中還對xpath的核心函式庫進行了擴充套件,有些函式的引數和返回結果資料型別超出了四種基本型別。

乙個完整的xpath表示式編碼為乙個位置路徑(location path),它包含有乙個或多個位置步進(location step),根據需要通過正斜槓(/字元)來定界。因此,乙個簡單位置路徑與定位在某個檔案系統上的乙個檔案的路徑相類似。例如,下面的位置路徑定位了前面所介紹的表示雇員資訊的xml文件中的surname元素節點:

前置正斜槓主要用於搜尋文件的根節點。每個後續的位置路徑重新把搜尋更深地定位到內容的文件樹。

三.xpath位置步進語法

在乙個位置路徑中,每個位置步進本身就是乙個xpath表示式。乙個位置步進最多包含三個部件:乙個軸、乙個節點測試和乙個判斷。包含全部三個部件的位置步進的一般格式如下:

1.軸:軸告訴處理器從環境節點中看到哪個方向。xpath規定定義了13種軸,他們通過關鍵字來標識:

例如:descendent-or-self 軸等同於「//」縮寫路徑(表示選擇無論層次的//之後的元素)

2.節點測試:節點測試部分把沿著指定軸可用的節點檢視縮小到僅僅是其中的乙個子集。

3.判斷:判斷部分為xpath表示式中的可選部分。判斷部分是乙個產生boolean值的邏輯測試,只有這些邏輯測試為true的候選節點才能得到定位。

綜合軸+節點測試+判斷乙個完整的例子:

四.xpath應用舉例

詳見xpath.doc

學習總結大學生黨校學習的學習總結

這個學期,我光榮的參加了 黨校培訓班 的學習。在這短短的五次課上,我們接受了關於十八大通過的新黨章的輔導,學習了列寧同志的建黨原則,明確的當代大學生的政治使命和責任,掌握了發展黨員的基本知識及應具備的基本材料,首先,通過學習,我進一步提高了對黨指導思想的認識。我們黨自建黨以來,湧現出了無數優秀黨員,...

有效學習評價學習總結

烏沙鎮明光小學黃志弟 一說到學業評價,人們往往會想到 試卷 成績 這樣的詞來審視學生的學習狀況,不管是過去的應試教育,還是如今的素質教育,這種只重結果不重過程的評價方法就是對學生學業狀況權威性的評價。課改以來,這種評價方法已經越來越無法全面 合理 客觀地評價學生的學業。人們開始更多地關注學生學習的過...

學習總結及學習計畫

轉眼間坐在大二的課堂裡了,真是光陰荏苒,歲月如梭!回想一年前的場景似乎就在眼前。高中三年過著世外桃源般的生活,真是 兩耳部聞窗外事,一心唯讀 聖賢 書 似乎遠離了這個紛繁複雜的世界,也許只有這樣才能保持校園這片淨土吧!遠離都市的嘈雜,每天 教室 食堂 宿舍 三點一線的生活,雖然大家來自不同的家庭背景...