前几天遇到写web service接口,就随便了解了php生成xml文件的几种方式,总共有四种方法,可参考:http://www.oschina.net/code/snippet_110138_4727
本文使用的是DomDocument生成xml文件。
常见的几个函数的介绍如下:
createElement:创建节点
createTextNode:创建文本内容
appendChild:添加子节点
createAttribute:创建属性
<?php
/**
* 生成xml文件
*/
$conn= mysql_connect("localhost","root","");
mysql_select_db("qiye",$conn);
mysql_query("set names utf8");
$query= mysql_query("select * from `friend_link`");
//使用字符串连接生成xml文件
/*
header("Content-type:text/xml");//指明文件的类型
$arr='<?xml version="1.0" encoding="utf-8"?><xml>';
while($row= mysql_fetch_array($query)){
$arr.="<link><id>".$row['id']."</id><name>".$row['name']."</name></link>";
}
$arr.="</xml>";
echo $arr;
*/
$fieldNum= mysql_num_fields($query);//获取表中的字段数
$fieldArr=array();//用于存放字段的名称
for($i=0;$i<$fieldNum;$i++){
$fieldArr[$i]= mysql_field_name($query, $i);
}
$info=array();//用于存放记录的信息
$index=0;
while($row= mysql_fetch_array($query)){
$info[$index]=$row;
$index++;
}
$dom=new DOMDocument("1.0","utf-8");//声明版本和编码
header("Content-Type:text/xml");
$dom->formatOutput=true;//格式化输出
$root=$dom->createElement("xml");
$dom->appendChild($root);
foreach ($info as $result){
$link=$dom->createElement("link");
$root->appendChild($link);
for($i=0;$i<$fieldNum;$i++){
$node[$i]=$dom->createElement($fieldArr[$i]);
$node[$i]->appendChild($dom->createTextNode($result[$fieldArr[$i]]));
$link->appendChild($node[$i]);
}
}
echo $dom->saveXML();
mysql_close();
?>