• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            XQuery

            Posted on 2010-04-21 21:54 Prayer 閱讀(502) 評論(0)  編輯 收藏 引用 所屬分類: DB2
            簡介
              XQuery = XML Query,是W3C所制定的一套標(biāo)準(zhǔn),用來從類XML文檔中提取信息,類XML文檔可以理解成一切符合XML數(shù)據(jù)模型和接口的實體,他們可能是文件或RDBMS。
              XQuery有如下特點:
              ·XQuery是查詢XML的語言
              ·XQuery類似RDBMS的SQL
              ·XQuery建立在XPATH的基礎(chǔ)之上
              ·XQuery已經(jīng)被現(xiàn)在主流的RDBMS所支持,如Oracle, DB2, SQLServer
              XQuery應(yīng)用舉例
              ·從Web Service中提取信息
              ·生成數(shù)據(jù)的摘要報告
              ·將XML轉(zhuǎn)換為XHTML
              ·從Web文檔中找尋信息
              在了解XQuery之前,你應(yīng)該首先了解
              XML
              HTML/XHTML
              XPATH
              ◆演示
              XML文件books.xml中是如下代碼:
              <?xml version="1.0" encoding="ISO-8859-1"?>
              <bookstore>
              <book category="COOKING">
              <title lang="en">Everyday Italian</title>
              <author>Giada De Laurentiis</author>
              <year>2005</year>
              30.00</price>
              </book>
              <book category="CHILDREN">
              <title lang="en">Harry Potter</title>
              <author>J K. Rowling</author>
              <year>2005</year>
              29.99</price>
              </book>
              <book category="WEB">
              <title lang="en">XQuery Kick Start</title>
              <author>James McGovern</author>
              <author>Per Bothner</author>
              <author>Kurt Cagle</author>
              <author>James Linn</author>
              <author>Vaidyanathan Nagarajan</author>
              <year>2003</year>
              49.99</price>
              </book>
              <book category="WEB">
              <title lang="en">Learning XML</title>
              <author>Erik T. Ray</author>
              <year>2003</year>
              39.95</price>
              </book>
              </bookstore>
              文件存儲了書店中的若干本書以及他們的語言,分類,作者,出版年和價格。
              現(xiàn)在,如果我們想找出所有價格大于30的書名集合則可以寫XQuery為
              for $i in doc("books.xml")/bookstore/book
              where $i/price > 30
              return $i/title
              doc是打開一個XML文檔的函數(shù),XQuery有一個函數(shù)庫支持,提供了諸如數(shù)學(xué)計算,字符串操作等功能。XQuery1.0于XPATH2.0,XSLT1.0共用同一套函數(shù)庫。粗體部分是一個XPATH的表達(dá)式,他返回了所有書的集合。where子句是篩選條件。而return子句則用于選擇結(jié)果并返回。XQuery具有和SQL類似的外觀和結(jié)構(gòu),以及相似的表達(dá)力。
              上述XQuery將返回
              <title lang="en">XQuery Kick Start</title>
              <title lang="en">Learning XML</title>
              然后,我們想把所有書的名稱組成一個排序列表并生成相應(yīng)的HTML表格,則應(yīng)該
              <ul>
              {
              for $x in doc("books.xml")/bookstore/book/title
              order by $x
              return <li>{$x}</li>
              }
              </ul>
              order子句用于排序。將返回
              <ul>
              <li><title lang="en">Everyday Italian</title></li>
              <li><title lang="en">Harry Potter</title></li>
              <li><title lang="en">Learning XML</title></li>
              <li><title lang="en">XQuery Kick Start</title></li>
              </ul>
              這是一段合理的HTML代碼
              下面是一些XQuery語法的基本規(guī)則:
              ·大小寫敏感
              ·元素,屬性和變量名必須是合法的XML名稱
              ·XQuery中的字符串可以使用單引或雙引號
              ·XQuery中的變量用$前綴加名稱表示
              ·XQuery中的注釋在 (: 和 :)范圍內(nèi)
              另外,作為高級功能,XQuery還提供了用戶自定義函數(shù)功能
              ◆總結(jié)
              XQuery將成為一種用于描述對XML數(shù)據(jù)源的查詢的語言,具有精確、強大和易用的特點。其支持者認(rèn)為針對XML的XQuery非常類似針對關(guān)系數(shù)據(jù)庫的SQL。對XQuery語言標(biāo)準(zhǔn)的定義工作已經(jīng)于2007年初完成,版本為1.0
              XQuery 如果使用 FLWOR 從 "books.xml" 選取節(jié)點請看下面這個路徑表達(dá)式:
              doc("books.xml")/bookstore/book[price>30]/title上面這個表達(dá)式可選取 bookstore 元素下的 book 元素下所有的 title 元素,并且其中的 price 元素的值必須大于 30。
              下面這個 FLWOR 表達(dá)式所選取的數(shù)據(jù)和上面的路徑表達(dá)式是相同的:
              for $x in doc("books.xml")/bookstore/book
              where $x/price>30
              return $x/title結(jié)果是:
              <title lang="en">XQuery Kick Start</title>
              <title lang="en">Learning XML</title>通過 FLWOR,您可以對結(jié)果進(jìn)行排序:
              for $x in doc("books.xml")/bookstore/book
              where $x/price>30
              order by $x/title
              return $x/titleFLWOR 是 "For, Let, Where, Order by, Return" 的只取首字母縮寫。
              for 語句把 bookstore 元素下的所有 book 元素提取到名為 $x 的變量中。
              where 語句選取了 price 元素值大于 30 的 book 元素。
              order by 語句定義了排序次序。將根據(jù) title 元素進(jìn)行排序。
              return 語句規(guī)定返回什么內(nèi)容。在此返回的是 title 元素。
              上面的 XQuery 表達(dá)式的結(jié)果:
              <title lang="en">Learning XML</title>
              <title lang="en">XQuery Kick Start</title>
            午夜精品久久久久久中宇| 99久久人妻无码精品系列| 精品多毛少妇人妻AV免费久久| 国产精品成人无码久久久久久 | 久久综合九色综合久99| 国产一区二区久久久| 国产精品一区二区久久不卡| 久久久精品久久久久久| 色欲久久久天天天综合网精品 | 一本伊大人香蕉久久网手机| 欧美亚洲国产精品久久| 亚洲欧美日韩精品久久| 午夜久久久久久禁播电影| 久久久精品日本一区二区三区 | 久久人人爽人人爽人人片AV不| 精品人妻伦一二三区久久| 久久精品国产亚洲av日韩| 午夜精品久久影院蜜桃| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 国产精品一久久香蕉国产线看| 伊人伊成久久人综合网777| 国产综合精品久久亚洲| 69SEX久久精品国产麻豆| 亚洲av成人无码久久精品 | 久久久久久国产精品美女| 久久九九久精品国产| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 久久久久久久波多野结衣高潮| 久久这里有精品视频| 久久久久女教师免费一区| 草草久久久无码国产专区| 青青热久久综合网伊人| 久久国产精品99久久久久久老狼| 人妻精品久久久久中文字幕69| 狠狠色婷婷久久一区二区| 97精品依人久久久大香线蕉97| 久久丫忘忧草产品| 精品国产乱码久久久久软件| 亚洲国产欧美国产综合久久| 国产V亚洲V天堂无码久久久| 99久久99这里只有免费费精品|