Java XPath解析器


XPath是全球資訊網聯盟(W3C)的官方推薦。它定義了一個語言在XML檔案中查詢資訊。它被用於遍歷XML文件的元素和屬性。 XPath提供各種型別,可用於從XML文件查詢相關的資訊表現形式。

什麼是XPath?

  • 結構定義 - XPath定義像元素,屬性,文字,名稱空間,處理指令,注釋和文件節點的XML文件部分

  • 路徑表示式 - XPath提供了強大的路徑表示式選擇的節點或在XML文件中的節點列表。

  • 標準功能 - XPath提供了豐富的標準函式庫操縱字串值,數值,日期和時間比較,節操作,順序操作,布林值等。

  • XSLT重要組成部分 - XPath是在XSLT標準的主要元素之一,是必須有知識,以便使用XSLT的文件。

  • W3C推薦 - XPath是全球資訊網聯盟(W3C)的官方推薦。

這裡是我們需要分析輸入文字檔案:

<?xml version="1.0"?>
<class>
   <student rollno="393">
      <firstname>dinkar</firstname>
      <lastname>kad</lastname>
      <nickname>dinkar</nickname>
      <marks>85</marks>
   </student>
   <student rollno="493">
      <firstname>Vaneet</firstname>
      <lastname>Gupta</lastname>
      <nickname>vinni</nickname>
      <marks>95</marks>
   </student>
   <student rollno="593">
      <firstname>jasvir</firstname>
      <lastname>singn</lastname>
      <nickname>jazz</nickname>
      <marks>90</marks>
   </student>
</class>

 

XPath表示式

XPath使用路徑表示式從XML文件中選擇一個或多個節點的列表。以下是有用的路徑和表達,從XML文件選擇節點的任何節點/列表清單。

表示式 描述
node-name 選擇具有給定名稱的所有節點“nodename”
/ 選擇從根節點開始
// 選擇從當前節點匹配開始的選擇
. 選擇當前節點
.. 選擇當前節點的父節點
@ 選擇屬性
student 例如:選擇名稱為“student”的所有節點
class/student 例如:選擇屬於類的所有學生的子類元素
//student 選擇文件中所有學生的元素

謂詞

謂詞用於查詢特定的節點或一個節點含有特定的值,並使用所定義 [...] .

表示式 結果
/class/student[1] 選擇的是類元素的子第一個學生的元素
/class/student[last()] 選擇的是類元素的子最後一個學生的元素
/class/student[last()-1] 選擇的是類元素倒數的第二個學生的子元素
//student[@rollno='493'] 選擇一個名為rollno為'493'值的屬性的學生元素