php数据转成xml php怎么转go

PHP中数组转换为XML格式 最近公司要做一个API接口 输出格式要有JSON与XML格式 在PHP中 输入JSON直接json_encode就可以 但输出XML没有提供函数 于是决定自己写一个
?php
/**
* 数组转XML类库
*
* @filesource ArrayToXML php
* @authorgenolf
* @version / /
*
* 使用说明
*echo ArrayToXml::parse($array root );
*/
class ArrayToXML {
//文档对象
private static $doc = NULL;
//版本号
private static $version = ;
/**
* 初始化文档版本及编码
*
* @param string $version版本号
* @param string $encodingXML编码
*/
public static function init($version $encoding) {
self::$doc = new DomDocument($version $encoding);
self::$doc formatOutput = true;
}
/**
* 转换数组到XML
*
* @param array $array要转换php数据转成xml的数组
* @param string $rootName要节点名称
* @param string $version版本号
* @param string $encodingXML编码
*
* @return string
*/
public static function parse($array $rootName = root $version = $encoding = UTF ) {
self::init($version $encoding);
//转换
$node = self::convert($array $rootName);
self::$doc appendChild($node);
return self::$doc saveXML();
}
/**
* 递归转换
*
* @param array $array数组
* @param string $nodeName节点名称
*
* @return object (DOMElement)
*/
private static function convert($array $nodeName) {
if (!is_array($array)) return false;
//创建父节点
$node = self::createNode($nodeName);
//循环数组
foreach ($array as $key = $value) {
$element = self::createNode($key);
//如果不是数组 则创建节点php数据转成xml的值
if (!is_array($value)) {
$element appendChild(self::createValue($value));
$node appendChild($element);
} else {
//如果是数组 则递归
$node appendChild(self::convert($value $key $element));
}
}
return $node;
}
private static function createNode($name) {
$node = NULL;
//如果是字符串 则创建节点
if (!is_numeric($name)) {
$node = self::$doc createElement($name);
} else {
//如果是数字 则创建默认item节点
$node = self::$doc createElement( item );
}
return $node;
}
/**
* 创建文本节点
*
* @param string || bool || integer $value
*
* @return object (DOMText || DOMCDATASection );
*/
private static function createValue($value) {
$textNode = NULL;
//如果是bool型 则转换为字符串
if (true === $value || false === $value) {
$textNode = self::$doc createTextNode($value ? true : false );
} else {
//如果含有HTML标签 则创建CDATA节点
if (strpos($value)) {
$textNode = self::$doc createCDATASection($value);
} else {
$textNode = self::$doc createTextNode($value);
}
}
return $textNode;
}
lishixinzhi/Article/program/PHP/201311/20849
PHP生成和获取XML格式数据 在做数据接口时 我们通常要获取第三方数据接口或者给第三方提供数据接口 而这些数据格式通常是以XML或者JSON格式传输 本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据
生成XML格式数据
我们假设系统中有一张学生信息表student 需要提供给第三方调用 并有id name sex age分别记录学生的姓名 性别 年龄等信息
CREATE TABLE `student` (
`id` int( ) NOT NULL auto_increment
`name` varchar( ) NOT NULL
`sex` varchar( ) NOT NULL

推荐阅读