国产男女无遮挡_日本在线播放一区_国产精品黄页免费高清在线观看_国产精品爽爽爽

  • 熱門標簽

當前位置: 主頁 > 航空資料 > 計算機 >

時間:2010-08-09 13:05來源:藍天飛行翻譯 作者:admin
曝光臺 注意防騙 網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者

這是一個有關以數據為中心的I n t e r n e t的一個重要的考慮。
所以,假使我們想使用X P a t h來進行查詢,我們應如何正確地進行呢?最好和最有效的解決
方案是,實際地編寫一些將X P a t h的查詢轉化為針對下面的數據庫的正確形式的查詢。實現的細
節將依賴于不同的數據庫系統,但是我們將舉例說明一些后面例子中的一些觀點。
現在,我們將使用一個相當簡單的方法,用這個方法裝入作者列表到XML DOM(文檔數據
模型,Document Object Model)中去,并且接著使用X S L來選擇節點。然后我們會得到可以改
變后端數據庫的好處,同時查詢保持不變。讓我們修改一下腳本,替換S E L E C T查詢中所傳遞的
W H E R E部分,我們像這樣傳遞一個X P a t h語法的查詢:
(1) 使用D O M來寫X M L
我們需要做的第一件事就是修改腳本來存儲從數據庫取回的信息到一個XML DOM。我們應
該真正地在做其他事之前完成它,但是對于某些文檔,像我們所產生的那個,非常快和容易,
只需要用腳本嵌入一些標記的名字。然而,使用D O M則要確保所有的標記是匹配的,所有的屬
性都用雙引號括起來,并且所有的命名空間都是正確的。我們甚至可以用一個解析器來驗證節
點樹,在我們將結果發回給調用者或傳輸結果之前,來確認結果是正確的。
在聲明完變量之后,是創建一個D O M,用來保存結果(注意I E 5將需要安裝I I S來運行這個
特殊的腳本,盡管你可以容易地使用所選的解析器來修改腳本):
程序清單1 0 - 1 6
這個對象提供給我們處理所有D O M的特性(查看第5章,關于可用特性的全部討論)。接著,
我們在數據庫上運行查詢用來檢索所有的作者:
程序清單1 0 - 1 7
這段代碼同樣能夠正確地建立起結果集。然而在能夠寫出標記之前,這一次將使用D O M。
382使用XML 高級編程
下載
第一步是創建一個叫做< A u t h o r s >的元素,它將用來保存所有的作者:
如你所見,創建這個元素比起在開始和結尾寫出< A u t h o r s >和< / A u t h o r s >還要容易,因為
D O M保證了這個層次將被正確地維護。現在準備開始循環處理數據。每一次,從數據庫中得到
一條記錄,我們需要在D O M中創建一條新的元素,這一次叫< A u t h o r >:
請注意,對于使用D O M的新手常犯的一個錯誤是假設剛才所創建的節點與某個東西相連;
不是這樣的!盡管你不得不通過解析器對象來調用元素的生成函數,節點是完全自由地浮動的。
當它已經被完全配置好了在循環的末尾,我們將把它附接給< A u t h o r >節點。
處理< A u t h o r >元素的第一件事就是設置它的a u t h o r C i t e I D屬性。注意,如果在數據庫中的值
為N U L L,s e t A t t r i b u t e ( )函數將會失敗。所以,一般情況下我們將首先檢查N U L L。然而,在這
種情況下,我們知道因為它是表的主鍵,它的值將總是存在的:
在記錄中接著的四個字段被在X M L文檔中的元素所表示。為了向< A u t h o r >節點加入元素容
易些,我們增加了一個叫做F i e l d To E l e m e n t ( )的函數,細節如下:
程序清單1 0 - 1 8
在數據庫中的P o r t r a i t字段對應一個叫做p i c L i n k的屬性,在一個叫< P o r t r a i t >的空元素中。不
像a u t h o r C i t e I D屬性,我們需要檢查數據庫的值是否是N U L L,因為如果是,它將跳出循環。如
果是N U L L,我們將不厭其煩地創建< P o r t r a i t >元素:
程序清單1 0 - 1 9
在完成循環進到下一條記錄之前,我們將< A u t h o r >節點追加到< A u t h o r s >節點上:
程序清單1 0 - 2 0
第10章XML和數據庫使用383 下載
一旦完成增加新的節點到< A u t h o r s >節點,可以拷貝所建立的節點列表到我們在前面創建的
解析器對象的X M L文檔容器中。我們需要這么做,因為在這個地方o A u t h o r s對象只是一個包含
一組節點的節點,不是一個完整的X M L文檔:
一旦我們創建了D O M,需要把它發送給瀏覽器。用必要的信息放在它的前面來顯示它是一
個X M L文檔,然后使用D O M的x m l屬性來編寫它的內部結構的文本化的信息。D O M考慮了開和
關標記,將屬性用引號引起來等等:
程序清單1 0 - 2 1
最后是一個在前面我們提到過的一個函數,它是用來簡化從記錄集的字段中創建節點,和
把它們加入到另一個節點中。同時在使用p i c L i n k屬性的時候,不用擔心當數據庫中的值是
N U L L時會創建任何東西。如果數據集很大,這件事就很值得做,因為可能會存在許多空元素,
它們占用空間。然而,應該只有在知道文檔的D T D允許當元素為空可以不存在時我們才這樣去
做。在這種情況下它將是:
程序清單1 0 - 2 2
(2) 增加查詢
我們剛寫的代碼只是簡單地以X M L的形式輸出所有的作者,但是使用D O M要好于寫自己的
標記。換句話說,我們不應該增加額外的功能到已經有的東西上。然而,既然數據在D O M中,
可以用它來做任何我們想處理X M L的事情。特別是,可以增加自己的X S L查詢語句。
附加的代碼被突出顯示,而且它位于將數據庫中的數據轉換為D O M的代碼之后。只有那時
我們才可以使用X S L語句:
程序清單1 0 - 2 3
384使用XML 高級編程
下載
如果沒有查詢被傳給調用者,則返回整個結果集。然而,如果存在一個查詢,我們使用
s e l e c t N o d e s語句來進行過濾。s e l e c t N o d e s語句可以用在任意節點上,所以我們可以這么寫:
然而,因為所建立的< A u t h o r s >節點不是一個正確的X M L文檔,它沒有根節點,并且查詢開
始用一個/—意味著從根開始工作—結束時不會返回任何東西。所以查詢事先創建的D O M對
象的文檔元素,我們將< A u t h o r s >節點保存在里面。
(3) 輸出結果
用X S L選擇的節點的結果不必是一個有效的X M L文檔。例如,X S L查詢:
 
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:XML高級編程上(126)
国产男女无遮挡_日本在线播放一区_国产精品黄页免费高清在线观看_国产精品爽爽爽
色乱码一区二区三在线看| 萌白酱国产一区二区| 日韩视频免费在线| 中文字幕日韩精品无码内射| 欧美国产综合在线| 久久久久久久久久久久久9999| 亚洲影院色在线观看免费| 蜜桃视频日韩| 久久久久久久午夜| 午夜精品一区二区三区四区| 丰满爆乳一区二区三区| 九九精品在线视频| 免费国产一区| 国产精品国产三级国产aⅴ9色 | av在线不卡观看| 国产精品视频成人| 日韩人妻精品无码一区二区三区| 国产精品午夜av在线| 久久国产精品偷| 国产午夜精品一区| 色综合视频网站| 国产情侣第一页| 久久97精品久久久久久久不卡| 国产欧美亚洲视频| 一区二区三区欧美成人| 99精品一级欧美片免费播放| 亚洲欧洲日韩精品| 91精品国产91久久久久| 欧美一级片中文字幕| 日韩在线国产精品| 狠狠精品干练久久久无码中文字幕| 国产精品国产精品国产专区蜜臀ah| 黄色污污在线观看| 欧美日本在线视频中文字字幕| 国产欧美一区二区视频| 一区二区三区的久久的视频| 久久综合九色综合久99| 人人妻人人添人人爽欧美一区 | 久久中文字幕视频| 成人一区二区av| 亚洲欧洲国产日韩精品| 国产成人精品999| 欧美精品亚洲| 欧美激情伊人电影| 91精品国产777在线观看| 日韩欧美激情一区二区| 国产精品国色综合久久| 97精品国产91久久久久久| 日日碰狠狠躁久久躁婷婷| 久久久极品av| 国产精品一区二区免费在线观看| 天堂а√在线中文在线| www.久久色.com| 国产免费内射又粗又爽密桃视频 | 日本在线成人一区二区| 久久精品视频一| av在线观看地址| 日韩美女av在线免费观看| 国产精品果冻传媒潘| 91久久国产自产拍夜夜嗨| 欧美日韩国产精品激情在线播放| 欧美激情乱人伦| 久久久久久人妻一区二区三区| 国产中文字幕91| 色999日韩自偷自拍美女| 国产精品久久久久久久久久久久久| 国产精品专区第二| 日韩精品无码一区二区三区| 国产99在线播放| 精品国产美女在线| 97免费视频在线| 国内成人精品视频| 中文字幕中文字幕在线中心一区| 久久久久久九九九| 99久re热视频这里只有精品6| 欧美精品v日韩精品v国产精品| 亚洲欧美国产一区二区| 国产精品久久久久国产a级| 久久五月天婷婷| 国产噜噜噜噜久久久久久久久 | 僵尸世界大战2 在线播放| 亚洲字幕一区二区| 国产精品私拍pans大尺度在线| 91成人免费观看网站| 国产一区国产精品| 青青草一区二区| 亚洲精品国产精品久久| 美女精品久久久| 久久精品国产免费观看| 久久天堂国产精品| 成人久久久久久| 国产一区二区高清不卡| 欧美日产一区二区三区在线观看| 午夜精品在线观看| 一道精品一区二区三区| 国产精品福利片| 久久视频在线免费观看| 久久99精品久久久久久三级 | 操91在线视频| 国产精品网站大全| 日韩中文字幕免费视频| 国产成人精品日本亚洲11| 97国产在线视频| av在线免费观看国产| 国产欧美精品在线播放| 国产在线视频一区| 免费一区二区三区| 欧美精品久久96人妻无码| 日韩免费av一区二区三区| 亚洲一区三区电影在线观看| 久久久久久12| 欧美激情日韩图片| 欧美区在线播放| 欧美猛少妇色xxxxx| 久久综合久久88| 国产精品国模在线| 国产精品久久国产| 国产精品精品国产| 久久成人精品电影| 久久综合久久八八| 久久国产精品视频| 伊人久久大香线蕉av一区| 在线免费观看一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一| 国产精品麻豆免费版| 国产精品初高中精品久久| 久久综合色88| 欧美精品第一页在线播放| 欧美激情一区二区三区在线视频观看| 欧美日韩国产成人在线| 久久久久久成人| 亚洲aⅴ日韩av电影在线观看| 性高湖久久久久久久久aaaaa| 日本一欧美一欧美一亚洲视频| 日韩欧美黄色大片| 欧美成人精品欧美一级乱| 黄色动漫网站入口| 国产日韩视频在线观看| 高清欧美性猛交xxxx| 丰满少妇久久久| 91福利视频导航| 日韩在线视频中文字幕| 国产精品露脸av在线| 欧美区在线播放| 亚洲va男人天堂| 青青影院一区二区三区四区| 僵尸世界大战2 在线播放| 国产美女99p| 国产高清一区视频| 国产精品视频福利| 九九精品在线视频| 欧美一级片免费播放| 免费在线黄网站| www国产亚洲精品| 久久亚洲a v| 国产精品青草久久久久福利99| 国产aaa精品| 日本一区二区三区精品视频| 国内一区二区在线视频观看| www插插插无码免费视频网站| 久久精品视频91| 久久亚洲成人精品| 午夜免费福利小电影| 红桃av在线播放| 99国产高清| 国产精品日韩电影| 亚洲不卡中文字幕无码| 欧美国产亚洲一区| 91精品国产综合久久香蕉的用户体验| 久久久久久久久久久亚洲| 久久91亚洲精品中文字幕| 日本成人中文字幕在线| 国产免费一区| 日韩在线不卡视频| 亚洲一区二区三区视频播放| 欧美黄色免费影院| 久久全球大尺度高清视频| 欧美成人中文字幕在线| 日本女人高潮视频| 国产乱子伦精品| 久久精品国产91精品亚洲| 午夜视频在线瓜伦| 国产一区二区精品免费| 色偷偷88888欧美精品久久久 | 91精品国产综合久久久久久蜜臀 | 日韩精品 欧美| 99精彩视频在线观看免费| 国产精品入口福利| 日本一区免费在线观看| 高清欧美精品xxxxx| 国产精品日韩在线一区| 日本久久高清视频| 91久久久久久久一区二区| 国产精品麻豆免费版| 日韩欧美精品一区二区| 91精品国产一区| 一区二区三区四区不卡| 麻豆一区区三区四区产品精品蜜桃| 久久大香伊蕉在人线观看热2| 亚洲欧美国产精品桃花|