DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> XML入門教程:XPath
XML入門教程:XPath
編輯:XML詳解     
XPath是一種用來從文檔樹中選擇節點和節點集的語言。從XPath的角度來看,共有七種節點:根節點、元素節點、屬性節點、文本節點、注釋節點、處理指令節點、名稱空間節點。

XPath是一種用來從文檔樹中選擇節點和節點集的語言。從XPath的角度來看,共有七種節點:

CDATA部份,實體引用和文檔類型聲明不包括在內,XPath在所有這些項都並入文檔之後才起作用。根節點和根元素是不同的兩個概念,根節點包含整篇文檔,包括根元素。

本文由整理發布!轉載請注明,謝謝!

匹配模板的通用模式

XPath提供了選擇節點的機制,兩個較有用的是軸選擇和謂語選擇,軸指定上下文節點和要選擇的節點的關系。共有十三種軸,最常用的有四種,分別是子軸(child)、屬性軸(attribute)、自已(self)、雙親(parent)。

XPath表達式可以匹配多個節點,如需對匹配的節點進行進一步的篩選,可以使用謂詞。

home/person/@id這種定位路徑的寫法叫簡寫定位路徑,該寫法簡潔,容易理解,是XSLT匹配模式中最常用的寫法。還有一種稱為非簡寫定位路徑的寫法,它把節點測試和軸結合在一起,如child::home/child::person/attribute::id。該寫法在實際使用中不常用,但它具有非常重要的性能因此有必要了解。

位置路徑是XPath的一個最常用的表達式,用以標識XML文檔的節點集。除此之上,XPath表達式還可返回數字、布爾和字符串。非節點集的XPath表達式不能用於xsl:template元素的match屬性中。它們用於xsl:value-of元素的select屬性值或用於位置路徑的謂詞中。

本文由整理發布!轉載請注明,謝謝!

每個XPath位置路徑可分為一步名多步,每步以/號分隔,如:

room[“@name=$root]/date[year=$year and month=$month]/meeting

上下文節點即當前正在處理的節點,也就是位置路徑定位的當前節點。上下文在XPath表達式計算前被創建,由XSLT處理器創建。處理每一步後,上下文都會改變。

位置路徑中的步可分為三部份:軸(axis)、節點測試(note test)和謂詞(predicate),它的寫法

axis::note-test[predicate]

軸和節點測試之間用::分開,每個謂詞由括號[]括起來。

要設計好一個位置路徑,需確保在每一步選擇最少的節點,使用最嚴格的軸,用最嚴格的節點測試。避免使用謂詞,因為由軸和節點測試選擇的節點集的每個節點都會用作謂詞的上下文節點。對於位置路徑的三步,最節省的是節點測試。

XPath中的所有數字都是8個字節的IEEE754浮點雙精度類型,與Java的double類型相同。可表示正無窮大、負無窮大和NaN(零除零)值。支持五種運算符,分別是加(+)、減(-)、乘(*)、除(div)、取余(mod)。

XPath中的字符串是Unicode字符,用單引號或雙引號定界。可以使用=和!=對字符進行比較,也可用,,=,關系運算符,但比較的兩個字符必須是數字,否則比較結果沒有意義。

XPath中的布爾值常用於位置路徑的謂詞中,如/person[name=debian]。布爾值還常用於xsl:if和xsl:when元素的test屬性中。如:

xsl:template match=home xsl:if test = .=‘debian‘ or .=‘redhat‘xsl:value-of select = . / /xsl:if/xsl:template

XPath還提供很多函數,用於表達式和謂詞。XPath函數的返回值有四種類型,分別是:

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved