<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      XQuery 學習筆記(二)開始FLOWER表達式

      上次簡單的介紹了一下XQuery的概況,對XQuery有了一個總體的認識,并基于路徑表達式做了幾個簡單的練習,本次將開始學習XQuery的核心內容:FLOWER表達式。

      FLOWER = For、Let、Where、OrderBy、Return,這五個詞是FLOWER表達式的基本組成部分,構成了其整體框架。還是使用Users.xml作為基礎數據進行XQuery查詢。

      示例代碼下載

      本系列所有示例代碼均在Altova XMLSpy 2010 Enterprise Edition中調試通過。

       

      Users.xml

      <?xml version="1.0" encoding="UTF-8"?>

      <Users>

          <User id="1">

              <Name>Tom</Name>

              <Age>12</Age>

          </User>

          <User id="2">

              <Name>Jerry</Name>

              <Age>9</Age>

          </User>

          <User id="3">

              <Name>Brooks</Name>

              <Age>24</Age>

          </User>

      </Users>

       

      2-1 Simple FLOWER.xq

      xquery version "1.0";

      for $user in doc("../XML/Users.xml")/Users/User

      where $user/@id = "3"

      order by $user

      return $user

      User元素中,查詢屬性"id"為3的元素,并按照User降序排列,返回User,注意:XQuery是區分大小寫的。此外,在XQuery中,變量名需要加美元符"$"前綴,和PHP一樣。

      查詢結果:

      <User id="3"><Name>Brooks</Name><Age>24</Age></User>

       

      2-2 Let Demo.xq

      xquery version "1.0";

      for $users in doc("../XML/Users.xml")/Users/User

      let $name:= $users/Name

      where $users/@id="3"

      return $name

      可以使用let語句給變量賦值,當XML中數據量很大時,使用let語句可以顯著的提高性能,因為let賦值的變量只需計算一次。

      查詢結果:

      <Name>Brooks</Name>

       

      FLOWER表達式不僅僅能輸出XML文件中的元素和屬性值,還可以添加自定義的HTML元素等,達到我們想要的結果。

      2-3 ul Contains.xq

      xquery version "1.0";

      <ul>

          {

              for $user in doc("../XML/Users.xml")/Users/User

              where $user/@id = "3"

              return $user/Name

          }

      </ul>

      可以將XQuery語句嵌入到HTML元素中,用大括號"{}"括起來,來動態顯示需要的列表。大括號中間的內容為待計算的表達式,稱為"內嵌表達式"。

      查詢結果:

      <ul><Name>Brooks</Name></ul>

       

      內嵌表達式可以出現在查詢表達式的任何位置:

      2-4 Embedded AnyWhere.xq

      xquery version "1.0";

      <ul>

          {

              for $user in doc("../XML/Users.xml")/Users/User

              where $user/@id = "3"

              return <li>{$user/Name}</li>

          }

      </ul>

      如上所示,在return 中包含了嵌入表達式。

      查詢結果:

      <ul><li><Name>Brooks</Name></li></ul>

       

      XQuery提供了一百多個內置函數以供調用,先看幾個常用的:

      2-5 Using Data().xq

      xquery version "1.0";

      for $user in doc("../XML/Users.xml")/Users/User

      where data($user/Name) = "Brooks"

      return $user

      data()函數用于獲取指定元素的值。

      查詢結果:

      <User id="3"><Name>Brooks</Name><Age>24</Age></User>

       

      2-6 Count() Demo.xq

      xquery version "1.0";

      <h3>

          There are {count(doc("../XML/Users.xml")/Users/User)} Users.

      </h3>

      count()函數用來計算指定元素的數目,注意要將函數用大括號括起來。

      查詢結果:

      <h3>

          There are 3 Users.

      </h3>

       

      可以使用類XML的語法為元素添加自定義屬性:

      2-7 Add Customer Attribute.xq

      xquery version "1.0";

      <ul type = "age">

          {

              for $user in doc("../XML/Users.xml")/Users/User

              where $user/@id = "3"

              return <li class = "{$user/Name}">{data($user/Age)}</li>

              (:return <li class = "{data($user/Name)}">{data($user/Age)}</li>:)

          }

      </ul>

      注意:這里<ul>type = "age"<li>class均是自定義屬性,XML本質上是自描述的,不要與HTML的屬性相混淆。

      XQuery中的注釋是 (: :),而不是XML<!-- -->,像笑臉一樣:)

      查詢結果:

      <ul type="age"><li class="Brooks">24</li></ul>

      注意到<li class = "{$user/Name}">中的class屬性中并沒有用data()函數,卻也獲得了嵌入表達式的值,因為這是XQuery解析引擎自動完成的。

       

      最后來看看對Altova XMLSpy 2010 Enterprise Edition的一些配置:

      1、設置XML格式化

      代碼的格式化對于提高代碼的可讀性與可維護性非常的重要,成熟的IDE會設置一些快捷鍵以方便開發人員快速格式化代碼,提高開發效率。如Visual StudioCtrl + K,D Ctrl + K,FEclipse Ctrl + Shift + F等。現在我們編寫的是XMLXQuery,該怎樣格式化呢?我查了下XMLSpy的幫助文檔,找到了一種方法,特與大家分享:

      1)點擊【Toolsà Options】,彈出【Options】對話框:

       

      2)在【View】選項卡中選擇【User Identation】,點擊【OK】:

      選擇【User Identation】可以使得代碼自動縮進。

       

      3)點擊工具欄上的【View】à 【Text View Settings】:

       

      4)在【Tabs】組中,選擇"Insert Tabs"或"Insert Spaces",可以將Tab Size設置大些,點擊【OK】:

       

      5)好了,現在我們來測試一下,首先找一個格式混亂的XML文件,還是用Users.xml,將其格式打亂:

       

      6)點擊工具欄上的【Edit】à【Pretty-Print XML Text】,我們會發現Users.xml被自動格式化了:

       

      2、設置常用快捷鍵

      我喜歡將一些常用的操作設置為快捷鍵,方便開發與調試,這次學習XQuery也不例外。接觸XMLSpy時間不長,對這個IDE還不太熟悉,只好慢慢摸索了,除了其自帶的快捷鍵外,我新添加了兩個:自動格式化和全部保存。

      上面的自動格式化默認是沒有快捷鍵的,調試時每次都要點一下,非常的麻煩,于是我就設置了一下:

      點擊工具欄上的【Tools】à【Customize】:

      在Keyboard選項卡中,Category選擇【Edit】,Commands選擇【Pretty-Print XML Text】,在【Press New Shortcut Key】中依次點擊"Ctrl Shift F",然后點擊"Assign",最后點擊【Close】。

      這樣就將自動格式化的快捷鍵設置為了:Ctrl + Shaft + F,可以在【Edit】à【Pretty-Print XML Text】中看到我們剛才設置的快捷鍵了,以后就可以方便的進行格式化:

      以同樣的方法,我設置了全部保存的快捷鍵:Ctrl + Shift + S。當然,你可以使用任意的快捷鍵,根據個人喜好,這兩個我覺得挺常用,推薦一下。

       

      小結:

      本次我們開始使用FLOWER表達式來對XML中的數據進行篩選,計算等,FLOWER可以非常的復雜,以后將會繼續深入介紹。此外7個實例也充分展示了FLOWER的靈活性,位置不固定,可以嵌入到表達式的任何部分。我們還可以添加自定義的元素和屬性,并隨意進行組合來達到顯示效。最后,對開發環境進行了一些定制,工欲善其事,必先利其器,熟練使用功能強大的IDE會使得開發與調試受益無窮。

      下一次將討論多個XML文件間數據的交互與查詢,同時回到定義,探究XML元素、屬性的基本知識。

      posted @ 2010-02-06 21:47  江蘇瑞步科技  閱讀(2575)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 免费国产又色又爽又黄的网站| 国产偷国产偷亚洲清高动态图| 综合激情网一区二区三区| 久久人妻av无码中文专区| 亚洲一区二区三区色视频| 欧美牲交a欧美牲交aⅴ图片| 亚洲日本欧洲二区精品| 99久久精品国产一区二区暴力| 国产成人亚洲精品青草天美| 国产视频最新| 国产福利在线观看免费第一福利| 钦州市| 99中文字幕精品国产| 苍井空一区二区波多野结衣av| 中文国产不卡一区二区| 西西人体大胆444WWW| 日韩大片高清播放器| 女高中生强奷系列在线播放| 国产成AV人片久青草影院| 色窝窝免费播放视频在线| 又黄又爽又色的免费网站 | 亚洲色最新高清AV网站| 日本一区二区精品色超碰| 人妻少妇精品久久| 色噜噜亚洲男人的天堂| 亚洲香蕉av一区二区蜜桃| 国产精品 视频一区 二区三区| 国产精品国产三级国产试看| 日韩精品一区二区亚洲专区| 精品少妇后入一区二区三区| 国产成人精品亚洲日本片| 中文字幕亚洲精品第一页| 国产suv精品一区二区883| 国产精品男女爽免费视频| 午夜国产理论大片高清| 少妇高潮喷水正在播放 | 久久久一本精品99久久精品36| 国产精品福利自产拍久久| xxxxbbbb欧美残疾人| 国产精品一区在线免费看| 欧美浓毛大泬视频|