XQuery對 XPath的擴充

來源:互聯網
上載者:User

雖然 XPath 和 XQuery 都能實現一些相同的功能,但是 XPath 比較簡潔而 XQuery 更加強大和靈活。對於很多查詢來說 XPath 非常合適。比如,從 XML 文 檔中的部分記錄建立電話號碼的無序列表,使用 XPath 實現最簡單。但是如果需 要表達更複雜的記錄選擇條件的運算式、轉換結果集或者進行遞迴查詢,則需要 使用 XQuery。

XPath

XPath 是一種領域專用語言(Domain- Specific Language, DSL),並很快成為了其他更通用語言的重要組成部分。程式設計語言通過模組和類把 XPath 結合進來,有時候甚至直接進入語言的文法。這種 情況和以前Regex的情況類似。

由於從 XML 文檔中提取特定的資料 時,XPath 能夠為開發人員節省大量的時間和精力,XPath 得以流行起來。即使 從未接觸過 XPath 的人也能很快利用其強大的功能。比如清單 1 中的 XML 片段 。

清單 1. XML 文檔

  <users>
   <user>
   <name>
     <first>Lola</first>
     <last>Solis</last>
   </name>
    <age>2</age>
  </user>
   <user>
   <name>
     <first>Nina</first>
     <last>Serafina</last>
   </name>
    <age>4</age>
   <visits>
     <first>2008-01-15</first>
    <last>2008-02 -15</last>
   </visits>
  </user>
  <user>
   <name>
     <first>Tracy</first>
     <last>Keller</last>
   </name>
    <age>35</age>
  </user>
  </users>

如果需要獲得文檔中青少年的姓氏列表,可使用 下面的 XPath 運算式。

清單 2. 選擇 18 歲以下使用者的姓氏

 /user[age lt 18]/name/last/text()
(: Result
    Solis
   Serafina
:)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.