国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

嚴(yán)永松

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

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

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

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

1 xml編程接口dom簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

2 軟件實現(xiàn)

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

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

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

輸入班號:

myrearch.asp文件中,提供按平均成績查詢的二次查詢功能。關(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文件中建立一個xml數(shù)據(jù)對象(xml數(shù)據(jù)島)

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

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

<% do while not rs.eof %>

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

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

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

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

>

<% next %>

<% rs.movenext %>

舟曲县| 大连市| 武功县| 万全县| 乐都县| 鹿邑县| 固镇县| 达州市| 垦利县| 沾益县| 四子王旗| 平果县| 洛浦县| 江阴市| 华容县| 永仁县| 阳泉市| 定州市| 景谷| 宣威市| 平阳县| 湖州市| 芷江| 桑日县| 天柱县| 安达市| 堆龙德庆县| 田阳县| 昌图县| 迭部县| 抚松县| 蓝山县| 张北县| 垦利县| 简阳市| 五常市| 彝良县| 革吉县| 个旧市| 都江堰市| 曲麻莱县|