构建基于XML的在线备忘录

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:o70078
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:XML能够使用得Internet上的数据交换变得更方便,XML与数据库一样,都能够作为信息存储的途径。当数据量不大的时候,比如完成一个在线备忘录,XML作为数据存储具有关系数据库所无法比拟的优势。在asp.net中能够利用.net类库提供的类及方法轻松地构建一个基于XML的在线备忘录。
  关键词:XML;数据库;数据存储;asp.net;在线备忘录
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)21-30403-02
  
  Making an Online Memoire Based on XML
  LIN Li-xing
  (Computer department,Minxi Vocational and Technical College,Longyan 364021,China)
  Abstract: Using XML can make the data switching in internet more easy.XML can be the avenue to story information as the database. when the data size is not too much for example to make an online memoire ,XML is much better than the relation database as the datastorage. With the classes and the methods provided in asp.netit can make an online memoire based on XML easily.
  Key words:XML;database;data storage;asp.net;online memoire
  
  1 引言
  
  随着网络技术的发展,人们通过网络传输各种信息,信息交换变得越来越频繁,对数据传输的要求也越来越高,如何不断提高数据传输的效率与质量已经成为网络技术发展关注的一大问题。在实际过程中,由于这些数据信息交换时会发生数据格式不同的问题,从而给信息交换带来困扰,提供一个便捷有效的数据格式以应用于网络传输成为解决这一问题的重要途径。XML提供的初衷就是为了解决这一问题。XML的全称是:Extensible Markup Language,意思是可扩展的标记语言,是W3C定义的一种可扩展标记语言,它的出现使得在Internet上进行数据交换变得更加方便。对一个文档进行标注,使得文档的内容变成一种结构化数据,结构化是XML的最大特点,同时也能够实现对不同数据源的数据的无缝集成,提供对同一数据的多种处理方法。XML的使用正越来越普及,越来越多的领域和环境下都采用XML来实现需要的功能。
  XML具有许多的优点:第一,XML是自描述的,它不仅允许定义自己的一套标记,也可以根据其他各种规则来制定标记;第二,XML允许对文档内容进行检验,例如文档类型定义,XML模式等都是应用于对文档进行验证;第三,可以使用XML开发各种行业的专有标记语言;第四,XML通用性,使它成为不同应用之间交换数据的统一格式;第五,XML是开放的,它是W3C定制的开放标准,可以广泛地适用于不同的应用环境;第六,XML规定了文档的结构,使用对文档的搜索方式和方法得到发展,提高了文档检索的效率。
  在实际应用中,XML发挥着巨大的的作用,在很多领域和环境下都采用XML来实现需要的功能,应用主要体现在四个方面:不同的应用平台上的数据交换、数据表达的多样性、作为编制新语言的工具、在C—S模式下,作为客户端存储数据的容器,在客户端上可以根据具体需求对数据进行处理,减少重复通信量,服务器只需传递相应的XML文件到客户端上即可。
  
  2 XML与数据库的比较
  
  XML和数据库有很多相似之处,它们都是结构化的存储信息的途径。数据库用记录和字段组成的表格存储信息,这样就允许方便地访问和搜索。XML文件也可以按照类似的结构化方式来存储信息。而XML作为一个统一的标准,不会像数据库系统那样因为数据库的不同而造成数据传递的困难。XML可以从一种数据库中取出数据,并将数据上传到完全不同的数据库中
  两者相比,Xml充当“数据库”做的备忘录与其他数据库系统相比有以下的好处:
  1)速度上:XML是基于文件的,比ADO.net的存取数据库速度更快。
  2)资源占用:无论数据总和多少,基本是处理分布式的小型文件(通常在1-100K内),所以不管是在内存或CPU的占用上都比数据库系统更节省空间。以XML构建的备忘录为例,数据存储的时候,若以XML为数据存储,所占用的字节最多不过以K为单位,一般不会超过100K。因为备忘录所需的数据量并不大,以100条记录为例,以XML形式存储,所需的存储空间不过20K左右,以access为数据存储,所需存储空间200K左右,而以SQL server为数据存储,需2M左右的存储空间。
  3)移植性和通用性:因为XML本身是一种通用数据描述语言,无论是在不同操作系统或程序语言上均能顺利移植和应用。
  但XML充当数据库也存在着以下的缺陷:修改、查找、维护、批量处理时如果数据量大,则必须借助程序系统操作,直接在文件夹管理文件非常麻烦,这方面逊于数据库系统的界面和易用性。但也有解决方法,可建立自己的XML数据处理软件或WEB系统来弥补这方面的不足。 安全性:XML以文件形式存放,充当数据库时的安全性相较于数据库系统而言较弱但在写程序时可以考虑用加密方法来实现。只是基于XML文件构建的数据库结构比较散乱,不如数据表封装的简单。
  在XML中,每个文档都可以被看成由若干个组件构成,若将一个XML文档看成是一个逻辑整体,一个XML文档是由若干个元素组成,每个元素都是一个文档逻辑组件,一个元素可以包含若干个子元素。在这种树结构的层次结构中,每个结点都是一个元素,其中包含根元素,根元素是唯一的,是XML文档的入口,根元素可包含其子元素,其子元素又可以包含自己的子元素。每个元素都有自己的属性。如果从文档的物理结构看,一篇XML文档可以看成是由一个或多个存储单元(即实体)组成。
  
  3 Asp.net中对XML的操作
  
  Asp.net是微软公司推出的一种Internet编程技术,它采用效率较高的,面向对象的方法来创建动态Web应用程序。Asp.net是一个统一的Web开发平台,提供了开发Web网站所必需的服务。Asp.net是一个基于.net的编译化开发环境,也是.net Framework的一部分,因此可以使用.net framework 中的所有类型与服务。
  .net framework中提供了一个XmlDocument类,用来表示XML文档,作用是解析xml文档,将其转换为对象,便于在程序中对XML文档操作。而XmlDataDocument 类对 XmlDocument 进行扩展,允许通过关系 DataSet 存储、检索和操作结构化数据。XMLDataDocument可以用来加载关系数据或 XML 数据,并使用 W3C 文档对象模型 (DOM) 操作这些数据。
  XmlDocument有两种加载Xml文档的方法,Load()方法加载指定的 XML 数据,LoadXml()方法从指定的字符串加载 XML 文档。
  XMLDataDocument类提供了一些对XML文件操作常见的方法。如下所示:
  SelectNodes:选择匹配 XPath 表达式的节点列表。
  RemoveChild :移除指定的子节点。
  SelectSingleNode: 选择匹配 XPath 表达式的第一个 XmlNode
  ReplaceChild:用 newChild 节点替换子节点 oldChild。
  Save:将 XML 文档保存到指定的位置。
  CreateAttribute: 创建具有指定名称的 XmlAttribute。
  AppendChild:将指定的节点添加到该节点的子节点列表的末尾
  
  4 创建在线备忘录
  
  在线备忘录,数据内容包括:备忘录的标题,备忘录的时间,备忘录的内容以及内容的紧急性。因为备忘录的数据量及数据内容相对简单,如果使用关系数据库来记录,在速度及资源占用上均不占优势,所以使用XML文件作为备忘录的数据存储。
  XML文件结构如下所示:
  <memoes>
  <memo id="1">
  <title>dfh</title>
  <date>2007-11-8</date>
  <engy>一般</engy>
  <content>今天要去开会</content>
  </memo>
  <memo id="2">
  <title>fdgdf</title>
  <date>2007-11-10</date>
  <engy>重要</engy>
  <content>今天是老爸的生日!</content>
  </memo>
  </memoes>
  4.1 添加备忘录的内容及修改,然后保存
  XmlDataDocument memoXmlDoc;
  //载入XML文档
  memoXmlDoc=new XmlDataDocument();
  memoXmlDoc.Load(Server.MapPath("memoes.xml"));
  //根结点 XmlNode root=memoXmlDoc.DocumentElement ;
  //定义一个新结点 XmlNode newmemo=memoXmlDoc.CreateElement("memo");
  //指明新结点的内容 newmemo.InnerXml="<title>" texttitle.Text "</title>" "<date>" labeldate.Text "</date>" "<engy>" listweather.SelectedItem.Text "</engy>" "<content>" textcontext.Text "</content>";
  if(Request.QueryString["id"]=="-1") //保存新备忘录
  {
  string memoID;
  int id;
  try
  {
  id= int.Parse(root.ChildNodes[root.ChildNodes.Count - 1].Attributes["id"].Value);
  }
  catch (Exception ex)
  { id = 0; }
  memoID=(id 1).ToString();
  XmlAttribute attrID=memoXmlDoc.CreateAttribute("id");
  attrID.Value=memoID;
  newmemo.Attributes.Append(attrID);
  root.AppendChild(newmemo);(下转第407页)
  (上接第404页)
  }
  Else/*修改备忘录的内容*/
  {
  XmlAttribute attrID=memoXmlDoc.CreateAttribute("id");
  attrID.Value =Request.QueryString["id"];
  newdiary.Attributes.Append(attrID);
  XmlNode oldmemo=memoXmlDoc.SelectSingleNode ("descendant::memo[@id=’" Request.QueryString["id"] "’]");
  root.ReplaceChild(newmemo,oldmemo);
  }
  memoXmlDoc.Save(Server.MapPath("memo.xml"));
  4.2 查询以前的备忘录
  //使用selectnodes获取特定月份的日记
  memoes=memoXmlDoc.DocumentElement.SelectNodes ("descendant::memo[contains(date,’" yearMonth "’)]");
  4.3 删除备忘录
  XmlNode root=memoxmldoc.DocumentElement ;//获取根结点
  XmlNode d=memoxmldoc.DocumentElement.SelectSingleNode ("descendant::memo[@id=’" chk.ID.Substring(6) "’]");
  root.RemoveChild(d);
  
  5 总结
  
  系统在组织数据时希望数据能够达到以下目标:数据对计算机及用户都是易读的,对于数据的内容与结构能定义,而数据的结构与数据的表示能分离,同时这些结构必须是开放的和可扩展的,而XML能够满足所有的要求。XML数据被存为一种简单、开放的格式,它很容易被应用程序解析。XML文档包含的是文本而不是二进制数据,应用程序可以解析XML文档,只查找感兴趣的特定标记,而未知标记及其相关数据可以被忽略。XML在作为数据存储,当数据量不大的时候,具有比关系数据库更大的优势!
  
  参考文献:
  [1] Chuck White.XML从入门到精通[M].北京:电子工业出版社,2002.
  [2] 劳伦特.XML基础与应用[M].3版.云舟工作室,译.北京:中国水利水电出版社,2002.
  [3] 东方人华.Visual C#.net web应用程序设计[M].北京:清华大学出版社,2005.
  [4] Jesse liberty,dan hurwitz.Programming asp.net中文版[M].瞿杰,等,译.北京:电子工业出版社,2007.
其他文献
摘要:网络化视频监视是远程视频监控、远程视频会议等应用的基础,采用Microsoft提供的VFW技术,获取摄像头视频信号,通过C/S模式通信编程,实现网络化视频监视功能。该程序可以使用于集中视频监视、远程视频会话等场合,具有应用范围广、通用性强、编程相对简单、成本低、可靠性高等优势。  关键词:网络化;视频;监视  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)09-
摘要:汉语国际教育专业人才培养的主要目标是培养国际汉语教学合格师资,专业教学实习是人才培养的重要环节。通过专业教学实习,尤其是境外教学实习,让学生实现理论基础知识 实践能力培养、第二语言应用能力、国际意识和跨文化交际能力、涉外项目的设计、组织、实施等多种能力的培养。  关键词:汉语国际教育 境外教学实习(IAP) 国际汉语教师培养  一、汉语国际教育专业教学实习的重要性  汉语国际教育专业人才培养
我国汉语言文学源远流长,博大精深,其中潜藏着无限的奥秘,值得我们不断探索。汉语言文学作为大学阶段的教育内容,有利于提高大学生的文化素养、认知水平以及审美能力。在职业教育中开设汉语言文学知识课同样有着重要的价值和意义,尤其是与历史文化密切相关的旅游行业的教育培训,提升从业人员的专业素养和文化底蕴既是行业的基本要求,也是新时代下市场的内在需求。由韩荔华编写的《汉语言文学知识》一书正是一本适合导游专业人
儿童诗是指结合儿童生长发育特点和心理特点,为提高儿童阅读欣赏能力,专门为儿童创作的诗歌。儿童诗展现了儿童丰富的内心世界,把儿童独有的内心世界和情绪活动生动地传达出来,情趣盎然,是一种陶冶儿童情操、发散儿童思维、发展儿童语言的非常好的素材。统编教材低年级段中有很多儿童诗,诗中有优美的语言、丰富的想象、新奇的构思,从中儿童可以获得美的体验与快乐。  《义务教育语文课程标准(2011年版)》(以下简称“
[摘要]诗歌是中国传统文化中重要的一部分,在曹雪芹先生的代表作品《红楼梦》中,诗歌也有所体现。由于《红楼梦》在文学史上的重要地位,很多人都对其进行了英译,在这些英译本中,杨宪益夫妇以及大卫·霍克斯的译本较为突出。本文就这两个译本从信息功能,美学功能,文化传递功能等方面进行对比分析,以期通过对译本的研究进一步促进中国文化走向世界。  [关键词]《红楼梦》;诗歌翻译;信息功能;美学功能;文化传递功能 
摘要:随着计算机网络的普及,网络教学愈来愈受到教育者的重视。该文主要讨论计算机导论课程的网络教学平台的设计,详细分析该系统的系统结构和功能,论述系统中主要功能模块的实现。  关键词:网络教学;B/S模式;学习系统;练习与测试;演示动画  中图分类号:TP315文献标识码:A文章编号:1009-3044(2008)33-1433-02  Design and Realization of Netwo
摘要:在Intel未来教育的先进理念的指引下,从基于局域网的网络课件的特征与内涵出发,以建构主义与“双主模式”教学理论为指导,利用局域网与互联网的优势,介绍设计开发新型网络课件的方法,并结合实际教学过程中的具体例子,提出相应的解决策略。  关键词:Intel未来教育;双主模式;网络课件   中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)32-1267-02  Netw
摘要:本文在对Java多线程分析的基础上,针对如何实现多线程,如何进行同步,如何管理多线程等问题进行了简单的阐述。  关键词:线程;多线程;线程组  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)19-30181-03  Analyse Shallowly Java Multi-threading Mechanism  WANG Jun-yu, WANG Xian-h
摘要:无线传感器网络是由部署在监测区域内大量的廉价微型传感器结点组成,具有传感器节点密度高,网络拓扑变化频繁,以及节点的功率、计算能力和数据存储能力有限等特点。该文介绍了ZigBee网络与GSM/GPRS网络相结合实现远程监测的无线传感器网络的软件与硬件总体设计方法。  关键词:传感器网络;数据融合;网络协调器  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)33-1
摘要:通过理论有与实例的比较,对目前比较流行的两种面向对象的编程语言C 与Java从7个方面作一比较,希望为程序的设计与教学提供帮助与选择。  关键词:C ;JAVA;程序设计;编程语言  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)21-30453-02    Comparison of the Object-oriented Procedure Count