PHP读取MySQL生成XML格式数据

来源:互联网 发布:留学生免税车 知乎 编辑:程序博客网 时间:2024/04/30 11:03

        假设有如下一张植物信息表plant需要提供给第三方调用。

        生成xml的PHP代码如下:

<?phperror_reporting(E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE);$host = "localhost"; // 定义连接到的mysql服务器名$user = "root"; // 定义用于连接的用户名$pwd = "12345678"; // 定义用于连接的密码$dbname = "leaf"; // 数据库名称,顶层元素$dbtable = "plant"; // 数据表,要取得的节点// 打开数据库连接$connect = mysql_connect($host, $user, $pwd) or die("Couldn't connect Mysql server!");@ MySQL_select_db($dbname, $connect);@ MySQL_query("SET NAMES 'UTF-8'");$query = "select * from " . $dbtable;$result = @ MYSQL_QUERY($query) or die("Invalid query: " . mysql_error());$fieldNum = mysql_num_fields($result); // 字段数$resultNum = count($result); // 记录数$dbtField = array (); // 数据表字段数组// 获取表的各个字段名for ($i = 0; $i < $fieldNum; $i++) {$dbtField[$i] = mysql_field_name($result, $i);}// 获取记录数组$resArray = array ();$index = 0;while ($row = mysql_fetch_array($result)) {$resArray[$index] = $row;$index++;}//echo "<pre>";//print_r($resArray);//echo "</pre>";// 建立xml, 声明版本和编码  $dom = new DOMDocument("1.0", "utf-8");// display document in browser as plain text// for readability purposesheader("Content-Type: text/xml");// 格式化输出$dom->formatOutput = true;// 建立根节点root$root = $dom->createElement($dbname); //database name$dom->appendChild($root);foreach ($resArray as $res) {// 建立root节点下子节点record$record = $dom->createElement($dbtable);$root->appendChild($record);// 建立record节点下的各项for ($i = 0; $i < $fieldNum; $i++) {// 表字段$node[$i] = $dom->createElement($dbtField[$i]);// 表字段的值$node[$i]->appendChild($dom->createTextNode($res[$dbtField[$i]]));$record->appendChild($node[$i]);}}echo $dom->saveXML();$dom->save("leaves.xml");mysql_close();?>

        生成的xml文件:

<?xml version="1.0" encoding="utf-8"?><leaf>  <plant>    <Id>1</Id>    <CommonName>Pubescent bamboo</CommonName>    <ScientificName>Phyllostachys edulis (Carr.) Houz.</ScientificName>    <CnName>毛竹</CnName>    <Count>1</Count>  </plant>  <plant>    <Id>2</Id>    <CommonName>Chinese horse chestnut</CommonName>    <ScientificName>Aesculus chinensis</ScientificName>    <CnName>七叶树</CnName>    <Count>3</Count>  </plant>  <plant>    <Id>3</Id>    <CommonName>True indigo</CommonName>    <ScientificName>Indigofera tinctoria L.</ScientificName>    <CnName>木蓝</CnName>    <Count>5</Count>  </plant>  <plant>    <Id>4</Id>    <CommonName>Japanese maple</CommonName>    <ScientificName>Acer Dalmatum</ScientificName>    <CnName>鸡爪枫</CnName>    <Count>7</Count>  </plant></leaf>

原创粉丝点击