阶段实验一:基于简单HTML文件格式的检索小系统.docVIP

阶段实验一:基于简单HTML文件格式的检索小系统.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
阶段实验一:基于简单HTML文件格式的检索小系统 要求:三人组队参加,完成一份实验报告,小组汇报验收。 时间:三周(从4月日算) 一、说明 HTML语言用来描述Web文档的通用格式和布局。详细的介绍可以参照一些书本或者网上资料。HTML中基本的语法单位称为标签。总的来说,标签用于指定内容的类别。对于每个类别,针对特定的内容,浏览器都有默认的显示方式。标签的使用语法是利用一对尖括号“”将标签名称包围起来。大部分标签都是成对的:包括开始标签和结束标签,如html和/html。开始标签和结束标签之间的信息称为标签的内容。这里仅考虑一个HTML语言的子集,该子集包含以下标签: html, /html:标识文档的根元素; head, /head:包含了文档的头部分,该部分提供了文档的相关信息,而没有提供文档的内容; title, /title:文档的标题元素,其内容显示在浏览器的顶部; body, /body:文档的主体部分,提供了文档的内容; ol, /ol:有序列表标签,用于创建有序列表,列表中的条目是通过标签li, /li指定的。可以嵌套有序列表ol。标签ol后不能直接嵌套ol,而必须通过li嵌套。 例如,下面的示例演示了嵌套的有序列表: html head title test for nested lists /title /head body ol li Section 2 ol li Section 1.1 /li li Section 1.2 /li /ol /li li Section 2 /li /ol /body /html 例如: html head title test for nested lists /title /head body ol li Anhui Province ol li City Hefei /li li City Wuhu /li /ol /li li Shanghai /li /ol /body /html 显示结果是: Anhui Province City Hefei City Wuhu Shanghai 对应的语法树为: 通过上面的HTML语言子集,可以设计结构化的Web文档。对于这样的文档,我们可以提取其结构信息,建立对应的结构化数据存储,并可以在此基础上进一步做相应应用如查询操作等。 二、要求 根据前面介绍的HTML语言子集,编写合法的文档,作为输入文件。然后用相应算法提取其结构化信息,生成如图的树形结构。 在已经建立的结构化存储数据结构上,做单词查询操作。输入一个查询关键字(如”City”),要求返回所有匹配的单词所在原HTML文档中的位置信息(如,City: Section 1.2 the first word and Section 1.2 the first word)。 实现将结果存入文件的功能。 根据需求,进行类的设计,并说明设计的理由。 三、提示 下面给出一个实现的算法。这里考虑一个简单的情况,即body中只有一个有向列表,对于body标签中有多个列表的情况,通过简单的修改此算法可以解决: 对于这样一个HTML文档,html, head, title是无关紧要的,在读取文档内容时可以忽略。核心的结构化信息在有序列表中。 遇到第一个ol时,生成头节点,头节点内容为空,curParent=curNode都指向该节点; 每当遇到一个li,生成curParent指向的节点的一个子节点curNode,li后内容即为该节点的内容; 每当遇到一个ol,curParent=curNode,准备以curParent为根的子树(递归操作); 每当遇到一个/li,则curNode指向的节点生成完毕(即不再往下递归地生成子树),继续读文件(注意,/ol后的第一个/li应忽略,因为/ol其后必然有一个/li); 每当遇到一个/ol,则以curParent 为根的子树生成完毕,curParent=curParent-parent; 当读到/body时,整个树生成完毕,返回其头指针。 针对前面示例的html文件,其语法树生成过程图示如下: 读到第一个ol,生成空的头节点1 。 (b) 读到ol后第一个li,生成第一个 子节点2,并将li其后内容作为节点内容。 (c) 遇到ol,curParent=curNode,准备 (d) 再次读到li,生成以curParent 以curParent为根生成子树;读到li,生 为根的子节点4;读到/li,非/ol 成

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档