用XML优化二次检索

2016-02-19 14:48 4 1 收藏

今天图老师小编要向大家分享个用XML优化二次检索教程,过程简单易学,相信聪明的你一定能轻松get!

【 tulaoshi.com - Web开发 】

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 

在搜索引擎的设计以及类似的软件功能设计中,一个必不可少的功能就是:对已有搜索结果的二次检索。如果检索的数据集是静态数据(例如存放在数据库中),通常的做法是在已有的检索条件的基础上,动态加入新的约束条件。但是重新构造数据检索的约束条件,往往需要用户同服务器再次交互,重新下载所需数据集合并输出。如果能在客户端对已经下载的数据集合进行二次检索,将极大地减轻Web服务器以及数据库服务器的负担。
XML能够很大程度地满足以上需求。它将数据内容本身与数据显示格式独立开来,分别处理。这样,如果需要改变文档的显示方式,只要修改样式文件(XSL)就可以了。XML的自我描述特性能够很好地表现许多复杂的数据关系,使得基于XML的应用程序可以在XML文件中准确高效地搜索相关的数据内容,忽略其他不相关的部分。同时,整个数据操作都是在客户端完成,大大减轻了服务器的负担。
XML编程接口DOM简介
DOM(Document Object Model,文档对象模型)是一种与平台和语言无关的编程接口,它允许程序和脚本动态访问和修改文档的内容结构和类型。它定义了一系列的对象和方法对DOM树的节点进行各种随机操作。
● Document对象:是DOM树的最顶层节点,是对整个文档进行操作的入口。
● Element和Attr对象:这些节点对象都是文档某部分的映射,节点的层次恰好反映了文档的结构。
● Text对象:作为Element和Attr对象的子节点,Text对象表达了元素或属性的文本内容。Text节点不再包含任何子节点。
● 集合索引:DOM提供了多种集合索引方式,可以对节点按指定方式进行遍历。
DOM采用以上介绍的一系列接口来描述XML文档的内容和结构,即利用对象将文档模型化。这种对象模型实现的基本功能包括:
● 描述文档表示和操作的接口;
● 接口的行为和属性;
● 接口之间的关系以及互操作。
DOM对结构化的XML文档进行解析,文档中的元素、实体、属性等所有个体都可以用对象模型表示。整个文档的逻辑结构类似一棵树,生成的对象模型就是树的节点,每个对象同时包含了方法和属性。DOM提供了许多查找节点的方法。其中用于搜索的方法有:
● 根据标签名称搜索元素: 利用Document对象中的getElementsByTagName方法在全文范围内查找元素;
● 使用XSL模式搜索节点:所有类型的节点都带有selectNodes方法,调用这个方法可以利用XSL的模式匹配策略查找节点;
● 使用集合索引搜索节点: 索引参数都是从0开始计数的,例如子节点ChildNodes对象集。
利用DOM,开发人员可以动态地创建XML、遍历文档、增加(删除/修改)文档内容。DOM提供的API与编程语言无关,所以对一些DOM标准中没有明确定义的接口,不同解析器的实现方法有可能有所差别。本文的示例采用MSXML DOM方案,并采用IE 5.0作为输出显示的浏览器。
软件实现
以下用一个简单的学生成绩查询系统为例具体说明如何实现。可以先按照学生所在的班级将学生成绩查询出来,然后可以选出平均分高于设定分数(用一个文本框接收设定分数)的学生列表。
在SQL Server中包含一个学生成绩表,关键字段有:学生姓名(Name)、班级(Class)、单科成绩(YuWen、ShuXue、JiSuanJi、YingYu等)、平均成绩(AverageScore)。
首先,编辑初始页面以提供按班级查询学生成绩的功能。
form method=post action=MyRearch. asp
输入班号: input type=text name=ClassName
input type=submit value=“提交”input type=reset value=“重填”
/form
MyRearch.asp文件中,提供按平均成绩查询的二次查询功能。关键代码如下:
%@ Language=VBScript %
//建立数据库连接,并根据用户需求,从数据库中检索出所有符合要求的数据集
% 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 %
//在HMTL文件中建立一个XML数据对象(XML数据岛)
//并且将数据库检索的数据集写入该数据岛中
XML ID=“StudentList” //该数据对象的唯一标识为StudentList
?xml version=“1.0” ?
Students
% do while not rs.EOF %
Student
% for i=0 to rs.Fields.Count-1 %
//以数据库表的列名为XML节点的节点名
%=rs.Fields(i).Name %
   %=rs.Fields(i).Value %
 /%=rs.Fields(i).Name %
% next %
% rs.MoveNext %
/Student
% loop %
/Students
/XML
//二次检索的结果集XML对象(XML数据岛)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)125/AverageScore
/Student
……
/Students
/XML
以上代码在数据库为SQL Server 7.0、操作系统为NT 4.0、Web服务器为IIS 4.0、浏览器为IE 5.0的条件下编译调试通过。
结 论
由于所有对数据集对象的操作是在客户端完成的,实际上是服务器数据对象的一份复制品,这样做的好处是避免了网络承受大量数据通信的负担。当然,这时用户在客户端做的所有操作对服务器上存储的数据毫无影响,如果要想对服务器记录也进行修改,那么就要用到客户端与服务器端的数据交互技术(XMLHTTP对象)了,这里就不再进行讨论。

 (本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

来源:https://www.tulaoshi.com/n/20160219/1607998.html

延伸阅读
青春期乳房发育注意       青春期女孩应做好乳房保健。青春期乳房开始发育时,不要过早地戴乳罩。乳房充分发育后可开始佩戴乳罩,但松紧度要适当,不可因害羞而过紧地束胸。乳房发育过程中,有时可出现轻微胀痛或痒感,不要用手捏挤或搔抓,青春期女性应具体应做到以下几点 注意姿势     平时走路要抬头挺...
摄影如何做二次构图   不知道大家是否有过这样的经历,本来拍了一张看起来平淡无奇的照片, 裁切过后却变得特别起来?有时候因为镜头焦段、实际距离的关系,只能从远处捕捉一些景色,后来再透过裁切来「重新构图 」?对于裁切这件事,每个人看法不同,今天就来小谈裁切对摄影构图的利弊吧! 你裁切过照片吗? 听过不少摄影...
标签: 丰胸
6个运动 罩杯迅速升级 方案一 1.双手合十放在胸前,记得挺胸抬头收腹,并随时注意调整呼吸。 2.肩放平,手肘向外和手掌呈垂直状态。注意双手和胸前至少相距15-20公分。 3.收腹,背部稍微弓起,合十的双手用力向前,边吐气边操作,一次大约10秒,重复5-6次。 费时:约1分钟 小提醒: 随时随地站着就可以做,很方便。 方案二 站...
什么是第二次分娩 什么是第二次分娩        产妇第二次生孩子的过程,就是第二次分娩。因为考虑到第一次分娩方式的不同,第二次分娩的时候,准妈妈们应该更加慎重地选择分娩方式,特别是第一胎剖腹产的准妈妈。当然,一般情况下,第二次分娩的妈妈不会像第一次分娩时那么紧张和茫然。 ...
标签: 贷款
发展潜力较大 用于二次抵押贷款的房屋应为市场发展潜力较大的优质住房和商业用房; 现房 用于个人房屋二次抵押贷款的房屋必须是现房; 一手房 房屋是使用中国银行抵押贷款所购买的一手房; 抵押登记已办 房屋抵押登记已办妥,且我行是房屋的抵押权人; 房屋有保险 房屋已办理保险,且保险单正本由中国银行执管; 地理...

经验教程

847

收藏

26
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部