XML是作为数据交换标准而出现的Java和NET都内在支持XML但是其它平台上的开发者也不用担心自己被这项技术所遗弃了PHP就是一个颇受欢迎的支持XML的脚本环境
在本文中我将向你介绍利用诸如PHP和MySQL这样的开放源码工具来处理XML的过程我将以执行一个MySQL查询并把从查询所得到数据格式化为XML为例来加以说明最后在开始埋头编写代码之前我将介绍如何把XML写入文件并检测系统设置
为了可以运行本文所给出的代码你需要能过运行PHP和MySQL而且为了充分利用这些例子你还需要知道主机名用户名和口令例子中的MySQL数据库的格式如图A所示让我们看看如何用PHP来连接该数据库
用PHP建立数据库连接
下面的PHP脚本建立到数据库的连接并执行一个查询
<?php
$db_name = xrandomusa_;
$connection = mysql_connect( username password) or die(Could not connect);
$table_name = pages;
查询MySQL
在MySQL连接建立之后你必须用该连接来建立当前数据库下面的代码就是用来完成这个任务的
$db = mysql_select_db($dbName $link);
现在用一个SQL语句来选择$table_name中的所有行
$query = select * from $table_name;
如有必要你可以随后添加属性现在如下执行查询
$result = mysql_query($query $connection) or die(Could not complete database query);
$num = mysql_num_rows($result);
你可以通过网站来获得关于所有MySQL函数的参考资料
建立并编写XML
现在你应该已经做好了建立新XML文档的准备了这有许多种方法不过我认为清单A中所用到的方法可以满足绝大多数目的
现在我们详细介绍这一过程变量num表示你查询的数据行出现与否它对MySQL的mysql_num_rows函数是可测的变量$file包含了一个指针该指针指向PHP在文件系统中成功的搜索到resultsxml时所产生文件对象如果找到resultxml则创建你的PHP文件对象以及指定文件且其属性是可写的现在你可以把一个变量的内容打印到创建后的文件(由于你的目录已经设置为允许PHP写文件所以这么做是没有问题的)
注意从安全的角度来考虑在实际的应用程序开发中这么做其实是很愚蠢的
为了确保你能够安全的实现本文所涉及的概念你应该为你所希望打开并写入的文件提供完全路径并确保该文件位于你的Web根目录之下
然后PHP的mysql_fetch_array函数把查询变量$result转换成一个数组并按其关键字进行循环如果pgaeTitle在查询所返回的栏之中对每一行返回值都向字符串变量$_xml写入某些文本
注意运算符=(它用来把XML格式的字符串当作数值来拼接)读取$row当循环结束的时候根XML节点打印到变量$_xml之中所有的变量用PHP的fwrite函数写入filexml文件之中
现在屏幕上显示出一个链接确保这条链接指向你的XML文件的路径否则你无法看到这个格式化XML(该文件用PHP处理MySQL查询而产生)