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

$fields=mysql_list_fields("embed",$table,$con);
$j=0;
//$num_fields=mysql_field_name($fields,$j);
//echo $num_fields;
while ($j<mysql_num_fields($fields)){
$num_fields=mysql_field_name($fields,$j);
$filestr.="<".$num_fields.">";
$filestr.=$row[$j];
$filestr.="</".$num_fields.">";
$j++;}
$filestr.="</".$table.">";
}
$filestr.="</".$table."s>";
echo $filestr;
//以下是文件操作代码
$filename=$table.".xml";
$fp=fopen("$filename","w");
fwrite($fp,$filestr);
fclose($fp);
Echo "数据表".$table."已经备份成功！";?>
</body>
</html>
通过以上文件的操作就可以实现对数据库中选定的表格进行备份.
以上主要介绍了两中方式的通过 XML 备份数据库的操作方法，其实并不复杂，通过 XML，我们可以备份各种各样的数据库，当然也可以通过相关的方法将备份的 XML 文档恢复到数据库中，这里就不详细描述了。
2、 在不同的数据库之间交换数据
XML 的另外一个特性就是可以用于在不同的数据库中交换数据，就象上面描述的一样，我们可以将一个系统中的某种类型数据库文件用 XML 导出，然后到另外一个系统中的其他数据库中将数据进行导入就可以了，XML 使得跨平台的不同数据库之间的数据交换变得更加方便。
如果我们要将 Oracle 中的数据发送给 Sql Server?如果我们不使用 XML,一切将非常复杂，而使用 XML 将 Oqacle 中的数据封装在一个 XML 文件中就可以被另外的数据库系统读入，如 SQL Server.
3、 显示数据
由于 XML 本身只关注内容，因此对于显示数据，它自己本身并不能进行，XML 的数据显示方式也特别多，可以通过 CSS(Cascading Style Sheet),XSL(extensible Stylesheet Language)或者 Data Binding(数据绑定)等多种方式来显示。
由于 XML 是数据和样式分离的，所以，我们可以按照我们自己的想象任意改变数据的显示格式而不用对 XML 文档进行任何操作，这一切将使数据边得更加的灵活和自由。
由于 XML 的显示详细描述起来比较复杂，这里就不详细介绍了。
4、 本身作为数据存储
其实我们刚才在介绍利用 XML 来备份数据库的时候忘了介绍一点，XML 本身就可以用来进行数据的存储，其实在下面的情况里面使用 XML 来存储数据是非常好的。
信息数据比较复杂：
其实一个复杂的数据并不一定能够很好的通过数据库来显示，但可以很好的用 XML 来显示。比如一个书籍的记录，通常会有书的名字和作者，如果书的作者只有一个，可以非常方便的使用数据库来显示，但是如果一本书有两个、三个或者更多的作者了，这个时候，XML 可以很轻松的解决
单独的字段复杂而庞大
同样对于刚才说的书的记录问题，如果我们要将书的每一章都放到数据库里面并不是能够很好的存储，数据库的每个字段等长，会浪费很大的空间.
数据类型和搜索速度并不重要
当然使用 XML 也有一定的问题，尽管 XML 的搜索已经进行了很大的优化，可是速度仍然很慢。而且 XML 中所有的数据是通过字符串来进行存储的，因此对于数据类型要求非常重要的数据而言，使用 XML 来存储也不是非常合适的。
数据库不大，但要可扩展
另外，由于 XML 良好的可扩展性，XML 还适用于小型的而且需要不断进行修改的数据存储。
另外，如果你的系统有多个服务器和数据库系统，就可以使用 XML 了，XML 可以轻松的将数据从 Linux 转移到 Windows 平台上。另外，还可以考虑将 XML 作为数据库做为长期存储的选择。
什么时候不用 XML 进行数据存储
通过前面的使用 XML 进行数据存储的对比，我们也应该知道什么时候不适合使用 XML 进行数据存储，如果我们对数据库的查询有很高的要求，XML 是不适合的，另外如果存储数据的数据类型很重要的情况下，XML 也是不适合的。
任何一项技术都有弊端，XML 也有不适合的时候，但是它将挑起所有数据的处理和传输的重任，这也是 XML 诞生的一个重要原因。今后，我们会在更多的产品和应用中看到 XML 的存在，特别是在数据传输的时候。
周速华
联想集团嵌入式应用研发处软件工程师，主要研究兴趣是 XML 在技术下一代 WEB 服务中的应用.可以通过 zhoush@legend.com 与他联系.