• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      XML在搜索引擎中的應(yīng)用

      2009-02-01 03:29嚴(yán)永松

      嚴(yán)永松

      [摘 要]在搜索引擎的設(shè)計(jì)以及類似的軟件功能設(shè)計(jì)中,一個(gè)必不可少的功能就是:對(duì)已有搜索結(jié)果的二次檢索。如果能在客戶端對(duì)已經(jīng)下載的數(shù)據(jù)集合進(jìn)行二次檢索,將極大地減輕web服務(wù)器以及數(shù)據(jù)庫服務(wù)器的負(fù)擔(dān)。本文以一個(gè)實(shí)例,采用msxml dom方案介紹了二次檢索的實(shí)現(xiàn)。

      [關(guān)鍵詞]XML XML編程接口 二次檢索

      [中圖分類號(hào)]G[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1007-9416(2009)12-0058-03

      [Abstract]In the search engine design,and software functions like design,an essential function is:To have the secondary search results retrieved.If the client already downloaded a second collection of data retrieval,will greatly reduce the web server and database server burden.In this paper,an example of using msxml-dom program introduced the realization of the second search.

      [Key word]XML/ XML Programming Interface/Secondary Search

      在搜索引擎的設(shè)計(jì)以及類似的軟件功能設(shè)計(jì)中,一個(gè)必不可少的功能就是:對(duì)已有搜索結(jié)果的二次檢索。如果檢索的數(shù)據(jù)集是靜態(tài)數(shù)據(jù)(例如存放在數(shù)據(jù)庫中),通常的做法是在已有的檢索條件的基礎(chǔ)上,動(dòng)態(tài)加入新的約束條件。但是重新構(gòu)造數(shù)據(jù)檢索的約束條件,往往需要用戶同服務(wù)器再次交互,重新下載所需數(shù)據(jù)集合并輸出。如果能在客戶端對(duì)已經(jīng)下載的數(shù)據(jù)集合進(jìn)行二次檢索,將極大地減輕web服務(wù)器以及數(shù)據(jù)庫服務(wù)器的負(fù)擔(dān)。

      xml能夠很大程度地滿足以上需求。它將數(shù)據(jù)內(nèi)容本身與數(shù)據(jù)顯示格式獨(dú)立開來,分別處理。這樣,如果需要改變文檔的顯示方式,只要修改樣式文件(xsl)就可以了。xml的自我描述特性能夠很好地表現(xiàn)許多復(fù)雜的數(shù)據(jù)關(guān)系,使得基于xml的應(yīng)用程序可以在xml文件中準(zhǔn)確高效地搜索相關(guān)的數(shù)據(jù)內(nèi)容,忽略其他不相關(guān)的部分。同時(shí),整個(gè)數(shù)據(jù)操作都是在客戶端完成,大大減輕了服務(wù)器的負(fù)擔(dān)。

      1 xml編程接口dom簡(jiǎn)介

      dom(document object model,文檔對(duì)象模型)是一種與平臺(tái)和語言無關(guān)的編程接口,它允許程序和腳本動(dòng)態(tài)訪問和修改文檔的內(nèi)容結(jié)構(gòu)和類型。它定義了一系列的對(duì)象和方法對(duì)dom樹的節(jié)點(diǎn)進(jìn)行各種隨機(jī)操作。

      (1)document對(duì)象:是dom樹的最頂層節(jié)點(diǎn),是對(duì)整個(gè)文檔進(jìn)行操作的入口。

      (2)element和attr對(duì)象:這些節(jié)點(diǎn)對(duì)象都是文檔某部分的映射,節(jié)點(diǎn)的層次恰好反映了文檔的結(jié)構(gòu)。

      (3)text對(duì)象:作為element和attr對(duì)象的子節(jié)點(diǎn),text對(duì)象表達(dá)了元素或?qū)傩缘奈谋緝?nèi)容。text節(jié)點(diǎn)不再包含任何子節(jié)點(diǎn)。

      (4)集合索引:dom提供了多種集合索引方式,可以對(duì)節(jié)點(diǎn)按指定方式進(jìn)行遍歷。

      dom采用以上介紹的一系列接口來描述xml文檔的內(nèi)容和結(jié)構(gòu),即利用對(duì)象將文檔模型化。這種對(duì)象模型實(shí)現(xiàn)的基本功能包括:

      (5)描述文檔表示和操作的接口;

      (6)接口的行為和屬性;

      (7)接口之間的關(guān)系以及互操作。

      dom對(duì)結(jié)構(gòu)化的xml文檔進(jìn)行解析,文檔中的元素、實(shí)體、屬性等所有個(gè)體都可以用對(duì)象模型表示。整個(gè)文檔的邏輯結(jié)構(gòu)類似一棵樹,生成的對(duì)象模型就是樹的節(jié)點(diǎn),每個(gè)對(duì)象同時(shí)包含了方法和屬性。dom提供了許多查找節(jié)點(diǎn)的方法。其中用于搜索的方法有:

      (1)根據(jù)標(biāo)簽名稱搜索元素:利用document對(duì)象中的getelementsbytagname方法在全文范圍內(nèi)查找元素;

      (2)使用xsl模式搜索節(jié)點(diǎn):所有類型的節(jié)點(diǎn)都帶有selectnodes方法,調(diào)用這個(gè)方法可以利用xsl的模式匹配策略查找節(jié)點(diǎn);

      (3)使用集合索引搜索節(jié)點(diǎn):索引參數(shù)都是從0開始計(jì)數(shù)的,例如子節(jié)點(diǎn)childnodes對(duì)象集。利用dom,開發(fā)人員可以動(dòng)態(tài)地創(chuàng)建xml、遍歷文檔、增加(刪除/修改)文檔內(nèi)容。dom提供的api與編程語言無關(guān),所以對(duì)一些dom標(biāo)準(zhǔn)中沒有明確定義的接口,不同解析器的實(shí)現(xiàn)方法有可能有所差別。本文的示例采用msxml dom方案,并采用ie 5.0作為輸出顯示的瀏覽器。

      2 軟件實(shí)現(xiàn)

      以下用一個(gè)簡(jiǎn)單的學(xué)生成績(jī)查詢系統(tǒng)為例具體說明如何實(shí)現(xiàn)??梢韵劝凑諏W(xué)生所在的班級(jí)將學(xué)生成績(jī)查詢出來,然后可以選出平均分高于設(shè)定分?jǐn)?shù)(用一個(gè)文本框接收設(shè)定分?jǐn)?shù))的學(xué)生列表。

      在sql server中包含一個(gè)學(xué)生成績(jī)表,關(guān)鍵字段有:學(xué)生姓名(name)、班級(jí)(class)、單科成績(jī)(yuwen、shuxue、jisuanji、yingyu等)、平均成績(jī)(averagescore)。

      首先,編輯初始頁面以提供按班級(jí)查詢學(xué)生成績(jī)的功能。

      輸入班號(hào):

      myrearch.asp文件中,提供按平均成績(jī)查詢的二次查詢功能。關(guān)鍵代碼如下:

      <%@ language=vbscript %>

      //建立數(shù)據(jù)庫連接,并根據(jù)用戶需求,從數(shù)據(jù)庫中檢索出所有符合要求的數(shù)據(jù)集

      <% set conn=server.createobject(“adodb.connection”)%>

      <% set rs=server.createobject(“adodb.recordset”) %>

      <% conn. open application(“sqlserver conn”) %>

      <% sqltext=“select * from scoretable where class=‘” %>

      <% sqltext=sqltext & request.form(“classname”) & “” %>

      <% set rs=conn.execute(sqltext) %>

      <% rs.movefirst %>

      //在html文件中建立一個(gè)xml數(shù)據(jù)對(duì)象(xml數(shù)據(jù)島)

      //并且將數(shù)據(jù)庫檢索的數(shù)據(jù)集寫入該數(shù)據(jù)島中

      //該數(shù)據(jù)對(duì)象的唯一標(biāo)識(shí)為studentlist

      <% do while not rs.eof %>

      <% for i=0 to rs.fields.count-1 %>

      //以數(shù)據(jù)庫表的列名為xml節(jié)點(diǎn)的節(jié)點(diǎn)名

      <<%=rs.fields(i).name %>>

      <%=rs.fields(i).value %>

      >

      <% next %>

      <% rs.movenext %>

      洛南县| 全州县| 弋阳县| 汤阴县| 周口市| 蒲城县| 济阳县| 姜堰市| 北流市| 洛阳市| 河南省| 安庆市| 竹溪县| 林芝县| 镇原县| 定安县| 乌拉特前旗| 日照市| 衢州市| 麻城市| 视频| 昌都县| 中山市| 泸溪县| 黄浦区| 康乐县| 镇巴县| 岳普湖县| 丰原市| 旬邑县| 台中市| 宜昌市| 泸定县| 清水县| 调兵山市| 龙陵县| 汽车| 铁岭市| 平邑县| 湖南省| 灯塔市|