基于xml的在线投票系统本科学位论文

发布时间:2018-08-22 12:17:38   来源:文档文库   
字号:

毕业设计(论文)开题报告

学生姓名: 号:

所在学院:

业: 计算机科学与技术

设计(论文)题目: 基于XML的在线投票系统的研制

指导教师:

2005 4 8



开题报告填写要求

1.开题报告(含“文献综述”)作为毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一。此报告应在指导教师指导下,由学生在毕业设计(论文)工作前期内完成,经指导教师签署意见及所在专业审查后生效;

2.开题报告内容必须用黑墨水笔工整书写或按教务处统一设计的电子文档标准格式(可从教务处网页上下载)打印,禁止打印在其它纸上后剪贴,完成后应及时交给指导教师签署意见;

3.“文献综述”应按论文的格式成文,并直接书写(或打印)在本开题报告第一栏目内,学生写文献综述的参考文献应不少于15篇(不包括辞典、手册);

4有关年月日等日期的填写,应当按照国标GB/T 7408—94《数据元和交换格式、信息交换、日期和时间表示法》规定的要求,一律用阿拉伯数字书写。如“2004426”或“2004-04-26



计(论 文)开

1.结合毕业设计(论文)课题情况,根据所查阅的文献资料,每人撰写

2000字左右的文献综述:

1.课题研究的目的和意义

从国际互联网应用的现状方面来考察,目前国内国际互联网用户数量巨大,并

且还在迅速扩展,联网计算机遍布全国各个行政地区,分布在各个领域,作为一个

平台,已经具备了在线调查的可行性,依据当前网上群体(主要是年轻人),可以有

目的地进行一些调查研究项目,为在第一时间采集第一手资料提供了有效的技术手

段。所以本课题的研究具有一定的现实意义。其次,从发展趋势看,在欧美等国际

互联网发达国家,网上调查已经相当流行。在未来国际互联网在我国城市和企业将

基本普及,届时在互联网上实施城市和企业统计调查将成为现实。

本课题主要是利用XML作为数据标准,采用DOM访问XML文档,用ASP

现后台数据管理,再用HTML等进行界面的设计

XMLeXtensible Markup Language的英文简写,意即可扩展标记语言。XMLHTML都起源于SGML(Standard Generalized Markup Language,标准通用标记语言),但XML在文档设计方面比HTML具有更大的灵活性,在耗费时间和资金方面比SGML的成本更低。

XML语言可让信息提供者根据需要自行定义标记及属性,结构化地描述信息内容,使XML 文件的结构可以复杂到任意程度。再加上良好的数据格式、可扩展行、高度结构化、便于网络传输等使用特点,使得XML在应用中体现出极大的优势。

1XML利于开发灵活的Web应用软件,并能够轻松实现在Web上发布数据。此外XML便于不同数据源的集成。XML能够使不同来源的结构化数据很容易地结合在一起。软件代理商可在中间层的服务器上对从后端数据库和其他应用处得来的数据进行集成,数据就能被发送到客户或其他服务器做进一步的集合、处理和分发。

2XML灵活实现了数据显示的多样性。数据发送到桌面后,能用多种方式显示。通过以简单开放扩展的方式描述结构化的数据,XML补充了HTML因而被广泛地用来描述使用者界面。HTML描述数据的外观,而XML描述数据本身。由于数据显示与内容分开,XML定义的数据允许指定不同的显示方式,使数据更合理地表现出来。本地的数据能够以客户配置、使用者选择或其他标准决定的方式动态地表现出来。

DOM的全称是Document Object Model(文档对象模型)。在应用程序中,基于DOMXML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。DOM接口提供了一种通过分层对象模型来访问XML文档信息的方式,这些分层对象模型依据XML的文档结构形成了一棵节点树。无论XML文档中所描述的是什么类型的信息,即便是制表数据、项目列表或一个文档,利用DOM所生成的模型都是节点树的形式。也就是说,DOM强制使用树模型来访问XML文档中的信息。由于XML本质上就是一种分层结构,所以这种描述方法是相当有效的。利用DOM,程序开发人员可以动态地创建文档,遍历文档结构,添加、修改、删除文档内容,改变文档的显示方式等等。可以这样说,文档代表的是数据,而DOM则代表了如何去处理这些数据。无论是在浏览器里还是在浏览器外,无论是在服务器上还是在客户端,只要有用到XML的地方,就会碰到对DOM的应用。作为W3C的标准接口规范,目前,DOM由三部分组成,包括:核心(core)、HTMLXML。核心部分是结构化文档比较底层对象的集合,这一部分所定义的对象已经完全可以表达出任何HTMLXML文档中的数据了。HTML接口和XML接口两部分则是专为操作具体的HTML文档和XML文档所提供的高级接口,使对这两类文件的操作更加方便。

ASP(Active Server Pages)是包括HTML标记、文本和脚本命令的文件,使用它可以创建动态、交互的Web服务器应用程序,并可以组合HTML页、脚本命令和ActiveX组件以创建交互的Web页和基于Web的功能强大的应用程序。它摆脱之前所有有所谓动态产生页面技术的局限性,具有简单易学的特性,良好的数据库操作能力,以及如同Windows程序一样的灵活性和交互性。

2.课题研究的目标

设计一个Web应用程序,可以创建一个在线投票,收集投票结果,并且以报表的

形式表示(柱状图和百分比)。以上应用程序的编写是基于XML文档,使用DOM接口

访问

3.课题研究的基本内容

在线投票系统的基本思想:在线以网页的形式生成一个调查问题,并给出选项

答案,由用户进行在线投票,用鼠标点击或钩选自己认为合适的答案,由系统收集

投票结果数据后,给出反馈,结果以页面方式生成报表,报表内容中的统计结果将

以柱状图和百分比形式反映。

在线投票系统主要流程:

调查创建页

显示调查项目及答案选项

用户投票

存储投票结果并汇总

报表显示页

1. 调查的定义:调查的问题及答案都是基于XML

2. 调查的显示:调查应该以HTML形式发送。

调查问题被显示在一个HTML表格之中,第一列包含问题文本,

第二列包含答案选项。

3. 调查的创建:调查的创建应基于Web页。

4. 投票:生成一个对调查的响应列表。

5. 报表:在线给出统计性报表,以HTML形式发送。

4.课题研究的时间步骤

3/01-4/16 查阅资料,学习XML,ASP等工具的使用方法,对项目进行

总体规划设计。

4/17-5/20 编写主程序,并调试。

5/20-5/30 完成程序,写毕业设计报告。

5.参考文献

ASPXML高级编程》 清华大学出版社

XML程序设计 清华大学出版社

ASP动态网站编程》 清华大学出版社

ASP网络编程技术》 清华大学出版社

XML手册》 电子工业出版社

HTMLASP编程实务》 清华大学出版社

XML编程从入门到精通》 北京希望电子出版社

ASP编程精选集锦》 科学出版社

XML.NET编程指南》 电子工业出版社

XML网页开发实例教程》 机械工业出版社

XML A Manager’s Guide 清华大学出版社

XMLWML教程》 南京邮电出版社

HTMLVBScriptASP 电子工业出版社

Dreamweaver MX制作教程 北京希望电子出版社

ASP网络开发技术》第二版 人民邮电出版社



计(论 文)开

2.本课题要研究或解决的问题和拟采用的研究手段(途径):

制作一个网上投票系统,需要实现网上数据的采集,数据的存储,数据的访问,数据的显示。

解决这些问题需要用到以下技术:

使用ASP发送调查至Web浏览器客户,收集调查结果。连接数据库以便检索与保存结果;使用HTML显示数据页;使用XML作为存储介质,进行数据的存储。 由于DOM是程序访问和维护HTMLXML文档的API,它的方法和属性可以方便的获得和创建起他所有XML的对象。DOM对象对XML的描述完全遵照XML本身的树状层次结构,在ASP中可以通过DOMDocument对象方便的对XML对象进行操作,从而实现数据的访问。



 

 

 

南京工业大学

 

 

基于XML的在线投票系统的研制

 

 

学生姓名

计算机科学与技术

指导教师

 

 

2005 6

 

摘要…………………………………………………………………………………………1第一章 绪论…………………………………………………………………………3

第二章 相关技术背景……………………………………………………………4

2.1 投票系统简介………………………………………………………………4

2.2 XML简介………………………………………………………………………4

2.3 DOM简介………………………………………………………………………4

2.4 ASP简介…………………………………………………………………… 5

2.5 基于XML设计的基本理论……………………………………………5

第三章 在线投票系统设计……………………………………………………6

3.1 在线投票系统的工作原理…………………………………………6

3.2 在线投票系统的结构………………………………………………6

3.3 在线投票系统的处理流程…………………………………………7

3.4 开发环境……………………………………………………………………8

3.4.1 AltovaXMLSpy2005简介……………………………………8

3.4.2 Macromedia Dreamweaver MX2004 简介………………9

第四章 具体模块的设计实现………………………………………………11

4.1 在线投票系统的各个代码模块…………………………………11

4.1.1 投票存储模块……………………………………………………11

4.1.2 投票显示模块……………………………………………………13

4.1.3 投票处理模块……………………………………………………17

4.1.4 结果显示模块……………………………………………………20

4.1.5 其他模块……………………………………………………………24

4.2 问题及其解决……………………………………………………………25

结束语 …………………………………………………………………………………26

参考文献……………………………………………………………………………27

 

基于XML的在线投票系统的开发

本文是计算机系01级本科毕业生毕业设计论文。其项目背景是Internet上的网络信息资源。本项目旨在开发一个满足网上投票需求的网上投票系统。能基于常用的若干网站,进行在线投票,收集投票结果,并且以报表的形式表示。所得信息可以最大限度的满足用户的需求。

本文以网上投票系统的基本原理、主页面设计、后台数据库的建立、后台的处理程序的制作为线索,描述了“网上投票系统”的主要结构及工作过程,并给出了投票过程中使用的一些算法。

 

关键词:ASP XML,网页制作

 

 

 

  

 

The development of Online Voting system based on XML

Abstract

This thesis is a graduate design of the 01Grade of the Department of Computer Science and Technology.

The purpose for the graduate design is to develop a “voting system”, allowing the users to vote via Web. It gives an entrance for the user to vote. Then the data is collected into the database backwards. Finally the result will be shown in another web page dynamically.

The main functions and the processing of the “Online Voting System” is described in this paper, organized by analysis of working principle, design of “Index”, database establishing and processing in the background. Some algorithms are also provided in this paper.

Key Words: ASPXMLWeb page development

 

 

 

 

 

 

 

第一章 绪论

Internet强大的信息服务功能使得用户几乎可以从中找到任何需要的信息,作为一个平台,Internet为在线调查,使用户能在第一时间采集第一手资料提供了有效的技术手段。本课题的目的是完成一个基于XML技术的在线投票系统,能基于常用的若干网站,进行在线投票,收集投票结果,并且以报表的形式表示。所得信息可以最大限度的满足用户的需求。

对比传统的调查方式,在线投票具有以下优势:

1.及时性和共享性

网上调查是基于Internet技术的一种调查,相对于传统的邮寄调查方式,其时效性大大提高。网上调查的结果是开放的,共享的,被调查者可以和调查者一样使用调查结果,而且投票信息经过统计分析软件初步处理后,可以马上查看到阶段性的调查结果。

2.便捷性和低成本

实施网上调查节省了传统调查中耗费的大量人力和物力。实施网上调查时,只需要一台能上网的计算机即可,通过站点发布电子调查问卷,由网络用户自愿填写,然后通过系统进行处理,统计出投票结果。

这个课题是由吴洁老师授题,本人独立完成的。

这篇文章中,将分部分来介绍基于XML在线投票系统的基本理论、结构框架和具体的各个功能模块的作用和实现方法。

论文组织如下:

第二章介绍了本课题相关的一些技术背景。基于XML在线投票系统的原理以及项目具体开发的环境。

第三章介绍了本课题中在线投票系统的具体设计思想。对在线投票系统进行了功能模块的分类,并描述了它的具体工作过程。这一章是全文的重点。

在第四章中,可以看到在线投票系统用户界面各个模块各个类的代码实现。对代码中的重要的函数进行了具体的描述及解析。最后是程序运行的结果的显示。至此,一个简单的在线投票系统真正完成。这一章是全文的又一重点。

第二章 相关技术背景

2.1 投票系统简介

投票系统主要是为站点向用户某项主题调查收集信息。通常一个投票主题提供几个选项供用户某个选项进行投票。系统将对用户选择结果进行统计,并将统计结果进行显示。统计结果显示有几种方式:使用直方图显示每个选项用户的投票数量;或使用圆饼图显示各个选项用户投票的相对百分比。在本课题中我们选用直方图的形式来显示投票结果,并在直方图的下方显示其所对应的方图所表示的数据百分比。

2.2 XML简介

XMLeXtensible Markup Language的英文简写,意即可扩展标记语言。XMLHTML都起源于SGML(Standard Generalized Markup Language,标准通用标记语言),但XML在文档设计方面比HTML具有更大的灵活性,在耗费时间和资金方面比SGML的成本更低。XML语言可让信息提供者根据需要自行定义标记及属性,结构化地描述信息内容,使XML 文件的结构可以复杂到任意程度。再加上良好的数据格式、可扩展行、高度结构化、便于网络传输等使用特点,使得XML在应用中体现出极大的优势。

2.3 DOM简介

DOM的全称是Document Object Model(文档对象模型)。在应用程序中,基于DOMXML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。DOM接口提供了一种通过分层对象模型来访问XML文档信息的方式,这些分层对象模型依据XML的文档结构形成了一棵节点树。无论XML文档中所描述的是什么类型的信息,即便是制表数据、项目列表或一个文档,利用DOM所生成的模型都是节点树的形式。也就是说,DOM强制使用树模型来访问XML文档中的信息。利用DOM,程序开发人员可以动态地创建文档,遍历文档结构,添加、修改、删除文档内容,改变文档的显示方式等等。

2.4 ASP简介

ASP(Active Server Pages)是包括HTML标记、文本和脚本命令的文件,使用它可以创建动态、交互的Web服务器应用程序,并可以组合HTML页、脚本命令和ActiveX组件以创建交互的Web页和基于Web的功能强大的应用程序。它摆脱之前所有所谓动态产生页面技术的局限性,具有简单易学的特性,良好的数据库操作能力,以及如同Windows程序一样的灵活性和交互性。

2.5 基于XML设计的基本理论

现今,XML的使用越来越广泛。XML可以跨越所有边界,是进行跨数据平台数据传送最好的选择。同时,XML也使得数据能够以多种方式进行显示,通过MSXML3.0的支持,在ASP中使用XML也很简单。使用XML构建投票系统,XML文件用来存储数据,则需要一种方法来对XML文件中的数据进行方便的访问、操作。MSXML DOM提供了对XML文档进行访问、操作的方法。因此通过XML来进行数据交换,具有非常好的兼容性,可以将不同来源的数据集成在一起。

第三章 在线投票系统设计

3.1 在线投票系统的工作原理

在线以网页的形式生成一个包含投票主题,投票选项的投票页。用户用鼠标选择自己认为合适的答案进行在线投票。系统收集投票结果数据后,给出反馈。结果页将以柱状图的方式显示投票结果。

3.2 在线投票系统的结构

基于XML的在线投票系统包含4个基本部分:

- 投票存储

- 投票显示

- 投票处理

- 结果显示

投票存储:创建一个XML文档,文档中存储了投票的基本数据,包括:投票主题,投票选项,每一项所得票数。使用这个XML文档可以达到代替数据库存储、访问、操作数据的功能。

投票显示:利用DOM接口访问XML文档。从文档中获取投票主题,投票选项的信息,以HTML形式生成投票页。

投票处理:用户在进行了一次投票之后,系统将通过DOM接口访问XML文档,修改投票选项的得票数。同时将生成得票率、投票人数等一系列有用信息。

结果显示:利用DOM接口访问XML文档。从中获取得票数,投票选项的信息,将得票数以柱状图的形式显示出来。

3.3 在线投票系统的处理流程

3.3.1

从流程框图3.3.1可以看到,当用户提交表单后,表单数据交由后台投票处理分析数据,把相应的处理结果存入Vote_Xml.xml文件,然后再由投票结果显示页面从Votes_Xml.xml中读取结果,并把处理结果显示出来。

本课题的关键在于以XML文档作为数据存储,这一点使得本系统在访问和操纵数据上与以往其它“网络投票系统”有很大的不同,关键在于要对XML文档进行高效率的访问。以上的页面都对XML文档进行了必要的访问,这些页面都需要通过DOM技术对XML文档进行访问。DOM技术作为本次课题的核心有必要做进一步的说明。

DOM是一组对象的集合,通过操作这些对象,程序员可操纵XMLHTML中的数据。利用DOM中的对象可以对文档进行读取、遍历、修改以及删除等操作。

从本质上来说,编写XML文档的过程实际上就是按照数据结构化的要求组织信息的过程,不管相关信息是如何简单或复杂,最终得到的结果都将是一个具有树状层次结构的XML文档。这样的文档在被DOM处理时,其包含所有的信息都被转化成一棵结点树,我们称之为DOM树。XML文档中的每一个元素都可以用DOM树中相应的结点来代表,对结点进行操作就是对文档中的元素进行操作。

3.4 开发环境

本课题是在WINDOWS2000 Professional配置IIS的操作系统下采用XML+ASP的方式开发的。XML文档的编辑器使用的是Altova XMLSpy2005ASP的编辑器采用的是Macromedia Dreamweaver MX2004

3.4.1 AltovaXMLSpy2005简介

XMLSpy2005 (图3.4.1.1是建置在eXtensible Markup Language (XML)技术企业标准上的 XML Development Environment的软件. 一般的XML编辑器大都采用以结构编辑或重复显示的方式编辑XML文档,而XMLSpy2005 则以更为先进的Enhanced Grid View 方式编辑文档。运用XMLSpy2005可以非常容易的开发结构复杂的data schemas,并且完全支持graphical design of XML SchemaXML2005使用嵌入式XSL editor,并包含了除错,XPath visualizer 语法协助,颜色识别,和整合浏览器预览等功能。XMLSpy2005同时还具有XSLT-engine,可以支持MSXML, Saxon, Xalan实现其ODBC and ADO database access的功能。

3.4.1.1

3.4.2 Macromedia Dreamweaver MX2004 简介

Dreamweaver MX 2004(图3.4.2.1 是一款专业的 HTML 编辑器,用于对 Web 站点、Web 页和 Web 应用程序进行设计、编码和开发。无论是喜欢直接编写 HTML 代码的用户还是偏爱在可视化编辑环境中工作的用户,Dreamweaver 都能提供帮助良多的工具,丰富Web 创作体验。 利用 Dreamweaver 中的可视化编辑功能,用户可以快速地创建页面而无需编写任何代码。不过,如果用户更喜欢用手工直接编码,Dreamweaver 还包括许多与编码相关的工具和功能。并且,借助 Dreamweaver,还可以使用服务器语言(例如 ASPASP.NETColdFusion 标记语言 (CFML)JSP PHP)生成支持动态数据库的 Web 应用程序。

3.4.2.1

第四章 具体模块的设计实现

4.1 在线投票系统的各个代码模块

在上面的章节中曾经介绍过,这个投票系统一共分成4个模块,在接下来的章节中将具体讲解每个模块。

4.1.1 投票存储模块(Votes_schema.xsd&Votes_Xml.xml

4.1中介绍到本投票系统采用以XML文档作为数据存储。本人为本次课题设计了这样的XML文档来存储数据:

当这个文档被加载后在内存中形成了这样一个DOM(图4.1.1.1

4.1.1.1

DOM中,文档的逻辑结构类似一棵树。文档、文档中的根、元素、元素内容、属性、属性值等都是以对象模型的形式来表示的。文档对象模型利用对象来把文档模型化,这些模型不仅描述了文档的结构,还定义了模型中对象的行为。换句话说,图中的结点不是数据结构,而是对象,对象中包含方法和属性。

DOM中对DOM树中的结点定义了以下几类对象。

Document对象:即文档对象,作为树的最高结点,Document对象是对整个文档进行操作的入口。

ElementAttribute对象:这些结点对象都是文档某一部分的映射,结点的定级层次恰好反映了文档的结构,在我们所开发的XML文档中OptionElement对象,而TitleNumber则是Attribute对象。

Text对象:作为ElementAttribute对象的子结点,Text对象表达了元素或属性的文本内容。Text结点不再包含任何子结点。在我们所开发的XML文档中Attribute对象TitleText对象是“很好”而NumberText对象则是“0

XML文档被加载后,通过使用上述的几个对象及其方法就可以利用ASP来访问XML文档了。

4.1.2 投票显示模块(ShowVote.asp

在明确了投票系统的存储结构后,就可以着手设计系统的具体界面了。首先要让被调查者知道所要调查的主题,以及之后获取调查的信息也就是调查结果。我们采用调查页面以HTML形式发送。并用表单技术收集访问者的态度。调查问题被显示在一个HTML表格之中,第一列包含问题文本,第二列包含答案选项。 为了不使也面过于枯燥,我们对页面做了一些修饰。包括滚动字幕等效果(图4.1.2.1)。以下是其源代码:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

//投票页面标题asp文件

Show_Vote

<%

strSourceFile="f:\kan_sheng\Votes_Xml.xml"

Set objXML=Server.CreateObject("Microsoft.XMLDOM")

objXML.load(strSourceFile)

Set rootNode=objXML.documentElement

Set objRootsite=objXML.getElementsByTagName("Vote")

Question=objRootsite.item(0).attributes.item(1).text

%>

<%

For i=0 To(objRootsite.item(0).childnodes.length-1)

%>

<%

next

%>

<%=Question%>
 

class="showonly" style="width:100">

查看结果

//版权申明asp文件

标记“form”的属性“action”值为“VotesProcess.asp”。属性“method”的值为“post”。与定义按钮的代码是对应的。表示按下“Submit”按钮这个表单将以“post”方式交给“VotesProcess.asp”文件处理执行。

然后在程序使用了如下代码:

trSourceFile="f:\kan_sheng\Votes_Xml.xml"

Set objXML=Server.CreateObject("Microsoft.XMLDOM")

objXML.load(strSourceFile)

Set rootNode=objXML.documentElement

Set objRootsite=objXML.getElementsByTagName("Vote")

其目的是加载外部的Votes_Xml.xml文件,用来创建DOM对象,并对所要访问的XML文档中的结点进行定位。在程序中先用绝对路径定位了XML文件,但是也可以利用ASP

中的对象Server的方法MapPathXML源文件地址的绝对路径转换为相对路径。然后 把路径所指的文件赋给变量“sourcefile.而后使用Server对象的creatobject方法声明了一个DOM对象objXML,然后通过load方法加载XML文档,在内存中生成树形存储结构。

接着,程序对树的子节点作循环。从语句:

可看到“单选按钮组Radio”有3个属性:nametypevalue。在这里我们要用到的是namevalue。利用循环变量i对每个按钮的value赋值。

通过语句

同样利用循环将内存中DOM树的每根Option树枝的attribute的第一项即选项,用文本框的形式显示出来。

最后这页还使用了一个超级链接:查看结果。点击这个超级链接,将跳转到投票结果显示页面(图4.1.4.1

4.1.2.1

4.1.3 投票处理模块(VotesProcess.asp

上一节中的表单以“Post”的方式,提交到投票处理模块中加以处理。现在来介绍一下这个处理模块。源代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

VotesProcess

<%

strSourceFile=Server.MapPath("Votes_Xml.xml")

Set objXML=Server.CreateObject("Microsoft.XMLDOM")

objXML.async=False

objXML.load(strSourceFile)

Set rootNode=objXML.documentElement

Set objRootsite=objXML.getElementsByTagName("Vote")

OptionResult=Request("VoteOption")

IF Int(OptionResult)="" Then

%>

<%ElseIf OptionResult<>"" Then

Cycle=objRootsite.item(0).childnodes.length-1

For i=0 To Cycle

If Int(OptionResult)=i Then

Var=objRootsite.item(0).childnodes.item(i).attributes.item(1).text

objRootsite.item(0).childnodes.item(i).attributes.item(1).text=Var+1

End If

Next

End If

objXML.save strSourceFile

Response.Redirect("ShowVote.asp")

%>

同上一节一样,程序先加载了外部的XML文件,然后作判断程序如下:

OptionResult=Request("VoteOption")

IF Int(OptionResult)="" Then

%>

<%ElseIf OptionResult<>"" Then

Cycle=objRootsite.item(0).childnodes.length-1

For i=0 To Cycle

If Int(OptionResult)=i Then

Var=objRootsite.item(0).childnodes.item(i).attributes.item(1).text

objRootsite.item(0).childnodes.item(i).attributes.item(1).text=Var+1

End If

由于在前一个页面中用户选择的单选按钮的值value已被赋值,且值正好是循环变量的值。现在只需通过Request对按钮组取值,将value同内存中的DOM树的树枝序号作比较,如果两个值相等,那就在相应的DOM树枝的number属性即得票率上加1。这样就完成了一次投票。

然而,修改过的DOM树只存在于内存中,因此修改过的DOM树要使用:

objXML.save strSourceFile

语句,将修改的结果存到硬盘中的XML文件中。

4.1.4 结果显示模块(ResultVote.asp

模块代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

DisplayVoteResult

<%

dim Total

dim per(20)

Total=0

strSourceFile=Server.MapPath("Votes_Xml.xml")

Set objXML=Server.CreateObject("Microsoft.XMLDOM")

objXML.load(strSourceFile)

Set rootNode=objXML.documentElement

Set objRootsite=objXML.getElementsByTagName("Vote")

For i=0 To(objRootsite.item(0).childnodes.length-1)

Total=Total+CInt(objRootsite.item(0).childnodes.item(i).attributes.item(1).text)

Next

If (Total>0) Then

For i=0 To(objRootsite.item(0).childnodes.length-1)

per(i)=(objRootsite.item(0).childnodes.item(i).attributes.item(1).text)/Total

Next

End If

%>

<%

For i=0 To(objRootsite.item(0).childnodes.length-1)

%>

<%

Next

%>

<%

For i=0 To(objRootsite.item(0).childnodes.length-1)

%>

<%

Next

%>

<%For i=0 To(objRootsite.item(0).childnodes.length-1)

%>

<%

Next

%>

<%

For i=0 To(objRootsite.item(0).childnodes.length-1)

%>

<%

Next

%>

图示

/> //柱状图的显示控制

得票数

<% =objRootsite.item(0).childnodes.item(i).attributes.item(1).text %>

得票率

<% = FormatNumber(per(i)*100,2,Ture)%>

%

候选意见

<%=objRootsite.item(0).childnodes.item(i).attributes.item(0).text%>

总投票数:

<% = Total %>

返回首页

如同前两节的程序一样,程序开始也装载了外部的XML文件。然后就是利用循环访问树枝节点显示,选项内容,得票率,得票数等(图4.1.4.1)。

4.1.4.1

4.1.5 其他模块(HeadTitle.asp&CopyRights.asp

除了上述的主模块以外,投票系统还有一个投票页标题模块和一个版权模块,分别用于修饰投票页面和申明版权。其代码分别如下:

HeadTitle

<META content="text/html; charset=gb2312" http-equiv=Content-Type>

欢迎使用投票系统


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

版权所有: Ace K网络小组

 

email: kan_sheng@hotmail.com © 2001-2005 

 

4.2 问题及其解决

开始设计时,由于对投票系统和DOM的使用的不熟悉,导致了第一次开发的在线投票系统功能的不健全。具体反映在发起一次投票,将包含问题和选项的XML文档制作完成后,可以通过DOM调用XML文档实现投票。如果要换一个问题或者临时增加一个选项,只需要先改写XML文件,将问题和选项写入即可。然而在投票显示页面和投票年结果显示页面中显示的还是先前的几个选项,新的选项并没有出现。

解决方案:

通过研究发现由于当时编写的DOM访问语句是简单的赋值语句,只对应了当前固定

的投票选项个数,新加的选项虽然在XML文件中,但在其他的几个模块中并没有处理这个选项的语句,因此新的选项在页面中是不会被显示的。如果要改变这种状况,只能为新的投票重新开发代码。

现在通过使用循环访问DOM树很好的解决了这个问题,根据树枝OptionLength作循环可以方便的访问每一个已知的节点,并且代码量很少。如遇到临时增加一个选项之类的问题,只需在修改XML文件,在文件中增加一个选项即可,选项和得票数在投票页面和显示页面中都会有正确的显示。比起第一次开发的系统,新系统在通用性和重用性方面有了很大的提高。

结束语

通过这次毕业设计,我对在线投票系统的相关知识有了进一步的理解,并且在整个毕业设计过程中,学习到了很多知识,锻炼了动手能力,尤其锻炼了我的细心工作的精神,我体会到在工作中一丝不苟的态度才能得到最后的成功。

虽然本课题只是简单地实现了在线投票最基本的功能,还有很多方面需要改进和提高,像是自定义投票选项,控制用户IP地址防止用户重复投票等等,都需要进一步的开发研究。总之,一个快速、高效、公正地投票系统将是我们不断追求的目标。

我在这次毕业设计工作期间的工作自始至终都是在吴洁老师全面、具体、悉心的指导下进行的。吴洁老师渊博的知识,敏锐的思维,严谨的作风使我受益匪浅。

谢吴洁老师在我进行毕业设计过程中给予的大力帮助。

同时感谢同学及父母对我的关心和帮助。

参考文献

[1]ASPXML高级编程》 清华大学出版社

[2]XML程序设计 清华大学出版社

[3]ASP动态网站编程》 清华大学出版社

[4]ASP网络编程技术》 清华大学出版社

[5]XML手册》 电子工业出版社

[6]HTMLASP编程实务》 清华大学出版社

[7]XML编程从入门到精通》 北京希望电子出版社

[8]ASP编程精选集锦》 科学出版社

[9]XML.NET编程指南》 电子工业出版社

[10]XML网页开发实例教程》 机械工业出版社

[11]XML A Manager’s Guide 清华大学出版社

[12]XMLWML教程》 南京邮电出版社

[13]HTMLVBScriptASP 电子工业出版社

[14]Dreamweaver MX制作教程》 北京希望电子出版社

[15]ASP网络开发技术》第二版 人民邮电出版社

[16] WWW.W3C.ORG

[17] WWW.XML.ORG

英文翻译

标题1.2

书写XML元素

第一部分:书写XML标记

最简单可以解释为,标记就是在文本信息中增加特殊的字符,这样这些文本就能使用一些方法加以处理了。处理文本的软件必须从标记字符中将信息加以分离,同时处理这些被标记字符指出的信息。

XML是一种用于设计自由构造的标记语言的语法系统,这些标记语言被用于特殊的知识领域。例如,一种标记语言可能被用于设计化学文本、数学文本、会计文本。

使用XML创造的自由构造标记语言被称作“XML应用”。

XML使用和HTML相同的构造块:

元素

属性

以下就是一个典型的HTMLXML的构造块例子:

< a href =”newpage.html”>Click here

< person species = “human”>Michael Calder

XML元素以一个标签开始同时意一个相匹配的标签结束。标签的名字是应该有意义的,可以用来描述标签中的内容,如“person”HTMLXML的明显区别在于在HTML中标签是需要被预先定义(因为HTML是一种标记语言),然而XML是一种在标记过程中进行定义的标记语言,这种语言可以根据用户的需要自定义标签。

标签能包含属性(如 species),而这种属性可以赋予一个值(如human)。属性是被用来添加更多的关于元素内容的信息。关于属性和它的值的这部分内容将被放到稍后的副主题中进行详细介绍。现在,我们来看一下一个基本的XML文档的结构。

第二部分:XML的规则

一个简单的XML文档,如一封电子邮件可以写成这样:

1:1.0”?>

2:

3:

4: 25th December 2010

5: Me

6: You

7: Happy Christmas

8:

9:

10:

Best wishes for Christmas

11: Ho Ho Ho

12:

Brought to you by Santa

13:

以上的代码显示了一个XML文档,每一行之前的行数仅供辨识使用(XML文档中没有行数)。这个例子可以被用来作为一个书写XML文档基本规则的参考。

当这个文档被用于Internet Explorer 5,网页将作如下显示:

图片:iecode01.jpg 508X326

现今,困扰XMLWeb的一个很大的问题是缺少浏览器的支持。Internet Explorer 5是目前对XML支持的最好的浏览器。关于XML文档在浏览器中的显示,我们将在以后的章节中加以介绍。事实上,浏览器并不能处理文档。我们并不知道那些标签是如何被翻译的。在HTML中标签的翻译是被构筑在浏览器中的。XML的标签是由开发者设计的,所以在某些场合,设计者必须告诉浏览器如何显示这些种类繁多的标签。一个XML文档可能被若干个应用软件处理,如数据库。

XML的申明(第1行)

这一行说明了什么是XML,以及XML编译器的版本。同时还指出了如果这个文档可以被认为是一个标准的单独的文档(就像上面这个例子)或者其他文档,诸如DTD (document type definition文档类型说明) 那么为了使它的内容可用,就必须对它进行外部调用。

DTD将在后面的章节作介绍。

如果这个XML文档不是单独的,那么它的第一行就应该写成:

1.0”? standalone=”no”?>

开始的标签和结束的标签?>被叫做处理指令。在这个例子中处理指令简单的指出了XML的版本。但其他的文档指令可能包含诸如用来格式化这个文档的样式单的申明等内容。样式单将在后面的章节作介绍。

严格的讲,这个XML申明的书写是可以有选择的,但应该被包含。如果被包含,那它必须被写在第一行。

另一个处理指令的例子如下:

1.0”?>

This is text containing two processing instructions,

One for each interpreter.

在这里一些Java脚本和Perl脚本的代码可以被插入到文档中。XML处理器将忽略这些处理指令,他们将被传给专门的应用程序加以处理。但是所使用的名字(如”java-script” ”perl”

必须符合XML的命名标准。

根元素(第213行)

每个XML文档有且只有一个根源素,就像上面的例子中,根元素message所控制的域是从第2行开始到第13行结束。有时候可能会出现空元素。开始标签和结束标签必须完全匹配。XML允许使用外部根元素,但必须与XML版本申明一样使用处理指令。

元素 下面的表指出了XML的部分元素标签:

XML的部分元素标签

<

开始标签的开定界符

结束标签的开定界符

myname

元素名

>

关定界符

/>

空标签关定界符

HTML简单的引用了预先编写的标签,但XML没有这样。XML由这些特殊的元素标签组成。正是这些符号控制着XML处理器。

一个XML元素标签由三部分组成:开始标签、内容和结束标签。

元素的组成

开始标签使用在一个元素开始时

Text

元素内容

结束标签在一个元素结束时使用

正文是包装在这些元素标签中的。注意标签是大小写敏感的,所以下面的例子是不可行的:

This is a bad element

一个元素的结束标签是必须存在的。

元素的命名规则:

一个名字至少需要包含一个az,或者AZ中的字母。

如果名字由多个字符组成,那么应该由字母,下划线(_,冒号(:)开始。

首字母后面可以是一个或多个字母,数字,连字符,句点,强调符和一些不同于英语的语言的字符。

字母x,m,lW3C的保留字

名字应该可以用来描述元素的内容。

元素嵌套 个元素必须被其他元素完全包含;如完全嵌套。下面的例子是不正确的,因为Signaturefooter元素交叠了:

1.0?>

25 th December 2010

Me

You

Happy Christmas

Best wishes for Christmas

Ho Ho Ho

Brought to you by Santa

我们使用术语:父亲和儿子来指明嵌套元素之间相互的关系。有相同父亲的元素称为兄弟

在上面的例子中,是所有元素的父亲,

的父亲,
是兄弟,每个儿子元素必须完全包含在父亲元素之中,兄弟元素不能相互交叠。

文档图表如下:

logical2.jpg 200x297

HTML不区分大小写,而XML是区分大小写的。XML的申明应该使用小写。XML默认使用小写,但在不同的系统下,可以使用UNICODE.但用小写书写标记确实是一个好的选择。

空元素(第8行)

XML中,如果一个元素是空元素,那么在它的的标签中必须明确申明它是空的,并且使用关定界符,/>,例如:

空元素还可以被两个标签标识:

第三部分:注释

XML注释与HTML类似

Michael Calder

44 McMahons Rd

Frankston

对注释来说有个限制:如果没有字符串”-- >”那”-->”不能单独被包含在注释内。另一个限制是:注释不能被写在标签内。例如:

>some text

第四部分:五个特殊符号和CDATA部分

XML使用实体作为一个单元来控制它的数据部分。一个实体像一个图像文件或一些简单的字符一样是一个整体。关于实体的内容将在后面的章节中介绍。

有一些预定义的实体,这些实体的字符可以从键盘上输入。但这是不允许的,因为他们有可能被误认为是标记字符。输入以下的字符(当它们不是标记的一部分时)这些字符实体就可以使用了。这些预定义实体是:

预定义实体

&

& &

' '

>

>h; >

<

< <

""

关于这些符号的具体应用将在后面关于实体的章节中加以介绍。

标签代表了标记,两个标签中间的部分是内容。XML需要一些规则来区分标记和内容:

标记由 < & 两种符号开始

其它三个字符也被用于为标记字符:> ,’,”

其它的都是内容。

如果这些标记字符被用于内部的没有被标记的文本,那么这些字符就会被XML解析器认为是某种标记。因此,这五个实体是仅有的可在XML中使用的实体名。

例如下面的例子是不正确的:

Michael Calder

< 30

44 McMahon's Rd

Frankston

Age元素中的小于号是用来表示年龄小于30,但解析器会误认为这是一个标记的开始。"McMahon's"中的单引号也应该使用一个合适的实体来取代:

Michael Calder

< 30

44 McMahon's Rd

Frankston

规则是那样的:

< & 不该被使用在标记的内容中。如果要用,就需要用特殊的实体取代它们。

”,’,> 可以使用在标记的内容中,前提是他们没有被误认为是标记。

有一种简单的显示文档,XML解析器不会处理它。就是将这种文档申明为CDATA

Michael Calder

< 30

44 McMahon's Rd

Frankston

]]>

在这个例子中被包含在中的文本被如实地显示了出来。XML解析器不会处理CDATA部分中标签中的内容。CDATA中的内容都不会被认为是标记。CDATA有违XML的精神,但它们却非常重要。它们可以被用于在XML中嵌入应用代码(java-script, VBScript)

XML支持非英语语言。HTML支持只支持ISO 8859/1的字符序列,这些字符允许你处理大多数欧洲或斯堪的纳维亚语言,但不支持中文,日文,印度文,和阿拉伯文。

XML基于Unicode 和扩展的ISO/IEC10646标准。非欧洲语言的字符可以被很好的运用于XML中,甚至是键盘上没有的字符他也能很好的支持。

第五部分:使用工具

有很多编辑器和工具可以被用来处理XML文件。首选的工具是XML编辑器。XML文件,和HTML文件一样是一种文本文件,所以很多文本编辑器可以用来编辑它。但如果使用XML编辑器那将更方便。

这个主题是用XMLWriter来作为编辑器编写XML文档。网络中的计算机群有一个地址通行证。学生可以从这个网站上下载该软件。

翻译原文

Topic 1.2

Writing XML elements

Part 1: Writing XML markup. Parts: 1 2 3 4 5

At its simplest, mark up involves adding special characters to some textual information, so that the text can be processed in some way. The software processing the text has to separate information from mark up characters and process the information as directed by the mark up characters.

XML is a grammatatical system for designing custom built mark up languages, suited to particular knowledge areas. A mark up language may be disigned for chemical text, or mathematical text or accountancy text, for example.

Custom designed mark up languages created with XML are called "XML applications".

XML uses the same building blocks as HTML:

elements

attributes

values

A typical HTML and XML example of these building blocks might be:

Click here

Michael Calder

The XML element opens with a tag and closes with a matching tag. The name of the tag, in this case "person" should be meaningful, and describe the content of the tag. The obvious difference between HTML and XML is that the tags are pre-defined in HTML (since it is a mark up language), whereas with the XML we are in the process of making up a mark up language, and so need to assign names to the tags that are going to be used in the language.

The tags can contain attributes (e.g. species) which can be assigned a value (e.g. human). Attributes are used to add further information regarding the content of an element. A detailed look at of attributes and their values will be left till a later sub-topic. For now, we look at the structure of a basic XML document.

Part 2: The rules of XML. Parts: 1 2 3 4 5

A simple XML document, simulating an email message, might look like the following:

1:

2:

3:

4: 25th December 2010

5: Me

6: You

7: Happy Christmas

8:

9:

10:

Best wishes for Christmas

11: Ho Ho Ho

12:

Brought to you by Santa

13:

The above code shows the XML document, with line numbers added in this case for identification (XML documents do not have line numbers). This example can be used to summarise the basic rules of writing an XML document.

When loaded into Internet Explorer 5, the page displays as shown below:

One large problem with XML and the Web at the moment is the lack of support by the browsers. Internet Explorer 5 is the furthest along the path of support. Viewing XML documents in browsers will be covered in a later topic, after the basics of developing XML have been covered. Note that the browser cannot do much with this document as it is anyway. There is no indication as to how the tags are to be interpreted. Unlike HTML where the interpretation of tags is built into the browser, in XML the tags are devised by the developer, so at some stage the developer must tell the browser how to display the various made up tags. Also keep in mind that XML is not intended just for display by a web browser. An XML document might be processed by a number of software applications such as a database, for example.

The XML declaration (line 1)

This line identifies that what follows is XML, it states what version of XML is being complied with. It also indicates if this document can be treated as a stand alone document (as in this case) or whether other documents, such as a DTD (document type definition) must also be retrieved in order to make full sense of the contents. DTDs will be covered later.

If this XML document was not standalone, then its first line would read:

Note that tags that begin with are called processing instructions. In this case the processing instruction simply specifies the version of XML being used. However other instructions might be contained, such as the style sheet to be used to format the document. Style sheets will be covered later.

Strictly speaking, this XML declaration is optional, but should be included. If included, it must be the first line.

A further example of processing instructions would be:

This is text containing two processing instructions,

one for each interpreter.<

/para>

Here some java-script and Perl Script code could be inserted. The XML processor ignores processor instructions, they just get passed onto the application that will process them. However the name used ("java-script", or "perl") must conform to XML naming standards.

The root element (lines 2 to 13)

Each XML document must have one and only one root element, in which all other elements are contained. Line 2 identifies the start, and line 13 the end of the element "message". Note, there are sometimes empty elements. Note also that the names used in the start and end tags must match exactly, including case. The only pieces of XML allowed outside the root element are comments and processing instructions, like the XML version declaration, for example.

Elements The following table indicates the parts of XML element tags:

Parts of an element tag

< start tag open delimiter

myname an element name

> tag close delimiter

/> empty tag close delimiter

While HTML simply relies on pre-programmed tags, XML does not. XML is triggered by these specific parts of the element tags. The XML processor is controlled by these symbols.

An XML element markup is composed of three parts: the start tag, the contents and the end tag.

Parts of an element

opening tag at the start of an element

text content of the element

the closing tag at the end of the element

Think of an element as text, wrapped between its tags. Note that tags are case sensitive, so that the following will not work:

This is a bad element

The closing tag on an element is never optional.

The rules for naming elements are:

a name consists of at least one letter: a to z, or A to Z

if the name consists of more than one character it may start with a letter, an underscore ( _ ) or a colon ( : ).

the initial letter can be followed by one or more letters, digits, hyphens, underscores, full stops, and some characters needed for languages other than English.

names that begin with the letters x,m and l are reserved by W3C

names should describe the content of the element

Element nesting Elements must be wholely contained within each other; i.e. nested completely. The following would be incorrect, since the signature and footer elements overlap:

25th December 2010

Me

You

Happy Christmas

Best wishes for Christmas

Ho Ho Ho

We use the terms "parent" and "child" elements to refer to the relationships between elements nested within elements. Elements sharing the same parent are called "siblings".

In the example above is the parent of all other elements,

is the parent of , is a child of
, and and
《基于xml的在线投票系统本科学位论文.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

相关推荐