使用XML进行数据存储与备份的实现(1)

2016-02-19 14:47 11 1 收藏

下面,图老师小编带您去了解一下使用XML进行数据存储与备份的实现(1),生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - Web开发 】

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

XML(eXtensible Markup Language,可扩展标记语言)作为一种数据标记语言正在不断引起人们的关注,XML的可扩展性已经受到了越来越多的人的关注,特别是在跨平台的数据交换当中,XML技术的运用可以轻松的解决这个问题.越来越多的企业宣布将在他们的产品中增加对XML的支持,Microsoft未来的发展战略.net的实现也是完全基于XML语言,由此可见,XML将在今后的数据传输和交换发展中占据越来越重要的作用。
XML简介
谈到XML就不能不提HTML,HTML语言的出现推动了互联网的普及.在XML诞生之初甚至现在,也有好多人有这样一种误解XML将完全取代HTML,其实,完全不是这样的。 同HTML一样, XML 是SGML (Standard Generalized Markup Language, 通用标识语言标准)的一个子集,它是描述网络上的数据内容和结构的标准。尽管如此,两这之间还是有很大的差别的。

XML不象HTML,HTML仅仅提供了在页面上显示信息的通用方法(没有上下文相关和动态功能) ,XML则对数据赋予上下文相关功能,它继承了SGML的大部分功能,却使用了不太复杂的技术。因此我们要明白XML不是HTML的一种替代品.在将来最可能的是网站开发者使用XML来描述网站所需数据和网站的结构,而HTML将用来格式化和显示这些数据.

XML不是HTML的替代品,两者的用途是不同的,XML是被设计用来描述数据和定焦与数据是什么,而HTML是被设计用来显示数据和定焦与数据是什么样子的。XML是基于数据的语言,是关于如何描述信息的,它只关注与内容,而HTML是关于如何显示信息的, 它更关注于样式.,传统的HTML对内容的支持非常简单,这就是设计大型WEB网站的时候,一定要使用数据库,因为HTML无法提供对大量内容的支持。

另外,也是非常重要的是XML是可扩展的,在HTML中所有的标志(tags)和文档结构都是预先定义好了的,我们必须使用那些标准的HTML标志,XML允许我们自定义自己的标志和自己的文档结构.

怎样用XML存储和备份数据
其实,通过前面的介绍,相信大家应该明白了为什么要使用XML来进行数据存储和备份了。

传统的数据库存储大都是通过数据库来实现的,数据库的出现给我们带来了很大的便利,提供的快速的信息搜索查询方式,但是数据库也给我们带来了一些不便,现在数据库系统特别的多,像Oracle,Sql Server,Linux下的自由软件MYsql等,他们各自有不同的标准,并且存在于不同的操作系统,以往要在他们之间交换数据尽管可行,但是非常困难,其实通过XML可以很轻松的实现。

XML在数据库应用方面可以有以下用途:

1、 备份数据库

使用XML来备份数据库可以灵活的将数据库中的信息转移到其他的平台和数据库系统中,而且备份数据库占用的空间也非常小,在MicroSoft的Sql Server2000中已经提供了对XML强大的支持,它通过For XML来将数据库中的记录导出为XML格式,可以通过Open Xml将数据从XML中导入到数据库中。这里就不介绍了,下面介绍这样通过WEB方式将Access数据备份到XML文件中,本文使用的数据库是E-home中厨房系统中的菜谱数据库,数据库主要有一个表FOOD,包含id,name,info,type,number,time字段,以下是在Win2000环境下备份ACCESS数据库的代码:(环境Win2000+IIS)

文件名:FoodBackup.asp
html
head
title使用XML备份Access数据库/title
/head
body
%

dim objconn
dim objrs
dim objfs
dim xmlfile
set objconn=server.createobject("adodb.connection")
//objconn.open "dsn=food;database=home;uid=;pwd=;"
objconn.open "driver={Microsoft Access Driver (*.mdb)};dbq="+SERVER.MapPath("home.mdb") //连接数据库,指定数据库文件的路径
//如果是MS Sql Server 则为:
//objconn.open "driver={SQL Server};Database=Dbname;Server=ServerName;UID=Username;PWD=Password"

set objrs=server.CreateObject("Adodb.RecordSet")
objrs.Open "food",objconn

set objfs=server.CreateObject("Scripting.FileSystemObject")
set xmlfile=objfs.CreateTextFile("d:food.xml")

xmlfile.writeline "foodlist"

while not objrs.EOF
xmlfile.writeline "foodid"&objrs("ID")&"/idname"
xmlfile.writeline  objrs("name")&"/nameinfo"&objrs("info")&"/infotype"&objrs("type")
xmlfile.writeline  "/typenumber"&objrs("number")&"/numbertime"&objrs("time")&"/time/food"

objrs.MoveNext
wend

xmlfile.writeline "/foodlist"

objrs.Close
set

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

xmlfile.close
set xmlfile=nothing

%
/body
/html



通过以上代码就可以实现对ACCESS数据库FOOD中表food的备份,只需要在本文件的基础上进行改动,就可以实现自由选择数据库中的表进行备份了。备份前文件的大小是3.65M,备份后经过Winzip压缩后的大小只有225KB,只需要通过对以上文件进行改动,也可以实现对Oracle,Excell.Access,Visual Foxpro等数据库信息的备份。

我们还可以通过PHP操作来对其他数据库进行备份,以下是在Linux下通过Apache+PHP对Mysql数据库的备份的文件代码:

文件一、Listtable.php (文件列出数据库中的所有表格,供选择备份)
html
head
title使用XML备份Mysql数据库/title
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/head
body bgcolor="#FFFFFF" text="#000000"
请选择要备份的表格:

$con=mysql_connect('localhost','root','xswlily');
$lists=mysql_list_tables("embed",$con);
//数据库连接代码
$i=0;
while($imysql_num_rows($lists)){
$tb_name=mysql_tablename($lists,$i);
echo "a href=backup.php?table=".$tb_name."".$tb_name."/abr";
//列出所有的表格
$i++;}


/body
/html




文件二、Backup.php
?if ($table=="") header("Location:listtable.php");?html
head
title使用XML备份Mysql数据库/title
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/head
body bgcolor="#FFFFFF" text="#000000"

$con=mysql_connect('localhost','root','xswlily');
$query="select * from $table ";
//数据库查询
$result=mysql_db_query("embed",$query,$con);
$filestr=""."?xml version="1.0" encoding="GB2312"?"."";
$filestr.="".$table."s";
while ($row=mysql_fetch_array($result))
//列出所有的记录
{$filestr.="".$table."";

来源:http://www.tulaoshi.com/n/20160219/1607923.html

延伸阅读
标签: excel
Excel怎么进行数据隐藏 Excel数据很多都是不希望被别人看到的,我们只希望对方看到我们希望看到的内容,这个时候我们就需要对数据进行隐藏。 隐藏单元格内容 选中要隐藏内容的单元格区域,右击选择设置单元格格式,在数值选项卡的分类列表中选择自定义,在类型输入框中输入三个半角的分号;;;,再切换到保护选项卡下,单击选...
标签: ASP
       XML和HTML4。0,请读下列示例      将表单数据存为XML格式       通常的,ASP中表单提交的数据一般被写入数据库。然而,如果你想让发送数据更为简便易行,那么,可以将它书写为XML文件格式。这种方式对于在web上收集的数据更为有用。因为XML对于所用平...
标签: ASP
  如你熟知ASP,XML和HTML4。0,请读下列示例 将表单数据存为XML格式 通常的,ASP中表单提交的数据一般被写入数据库。然而,如果你想让发送数据更为简便易行,那么,可以将它书写为 XML文件格式。这种方式对于在web上收集的数据更为有用。因为XML对于所用平台来说非常的简便,所以用不着转换数据格 式。 将提交的数据写为XML文...
标签: PHP
在Linux下通过Apache+PHP对Mysql数据库的备份的文件代码: 文件一、Listtable.php (文件列出数据库中的所有表格,供选择备份) 请选择要备份的表格: $con=mysql_connect('localhost','root','xswlily'); $lists=mysql_list_tables("embed",$con); //数据库连接代码 $i=0; while($i$tb_name=mysql_tablenam...
环境:win2k+sqlserver 2K+查询分析器 SQLSERVER服务实例名称:mainserver 需要备份的数据库名称: msdb 本地机器名称(Client端):david 本地用户:zf 密码:123 本地域名:domain 本地提供备份需求的文件夹:e:est 第一步: 建立共享文件夹 在程序代码中调用(或者CMD窗口) net share tes...

经验教程

252

收藏

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