2010-09-07 34 views

回答

-1

這個tutorial on XPATH是相當簡單,易於遵循。還請查看XMLXQUERY上的相關教程。

+1

W3Schools的是不符合W3C沒有任何關係,請修復您的鏈接文本。不過,他們確實有一些不錯的教程。 – jasso 2010-09-12 16:44:43

5

XPath是一種簡單的查詢語言,用於在XML DOM中進行搜索。我認爲它可以與具有數據庫的SQL Select語句進行比較。 XPath可以評估許多使用XML的程序並且具有大量使用。我建議你學習它。

XQuery更強大和複雜它也提供了許多選項如何轉換結果,它提供了循環等,但它也是查詢語言。它也被用作XML數據庫中的查詢語言。我認爲這種語言只有具體的用法,可能沒有必要知道它,一開始就會有足夠的,如果你知道它存在,它可以做什麼

有一個簡單的解釋,我希望它是足夠的,可以理解的

-2

我也建議你看看下面這個頁面,這可能有助於得到一些想法。

link text

+0

不錯的一個德尼茲.. – 2012-07-05 10:10:08

13

的XPath是定位在XML樹的特定元素的一種方式。

例如,給定的結構如下:

<myfarm> 
    <animal type="dog"> 
    <name>Fido</name> 
    <color>Black</color> 
    </animal> 
    <animal type="cat"> 
    <name>Mitsy</name> 
    <color>Orange</color> 
    </animal> 
</myfarm> 

XPath允許您遍歷結構,如:

/myfarm/animal[@type="dog"]/name/text() 

這將使你 「菲多」

的XQuery是一種使用XPath查詢XML結構的XML查詢語言。但是它也允許定義和調用函數,以及使用FLWOR表達式複雜地查詢數據結構。 FLWOR允許XML中定義的數據集之間的連接功能。 FLWOR article from wikipedia

樣品的XQuery(使用一些XPath的)是:

declare function local:toggle-boolean($b as xs:string) 
as xs:string 
{ 
    if ($b = "Yes") then "true" 
    else if ($b = "No") then "false" 
    else if ($b = "true") then "Yes" 
    else if ($b = "false") then "No" 
    else "[ERROR] @ local:toggle-boolean" 
}; 

<ResultXML> 
    <ChangeTrue>{ local:toggle-boolean(doc("file.xml")/article[@id="1"]/text()) }</ChangeTrue> 
    <ChangeNo>{ local:toggle-boolean(doc("file.xml")/article[@id="2"]/text()) }</ChangeNo> 
</ResultXML> 
+2

+1有用的解釋和例子。但是2個更正:1)「在XML DOM中」應該說「在XML樹中」。 DOM是XPath不需要的特定接口。 2)「XQuery是XPath的擴展」 - 我會說,「XQuery是一種使用XPath的XML文檔查詢語言」。就像C語言使用算術運算符一樣,但C遠不止是「算術運算符的擴展」。 – LarsH 2010-09-13 17:00:20

+0

感謝您的反饋。澄清我的帖子。 – 2010-09-16 13:32:25

+0

@LarsH:值得注意的是,XQuery實際上是XPath的擴展(或超集)。任何有效的XPath表達式也是有效的XQuery表達式。 – Tomas 2012-04-10 14:54:43