知识大全 PHP中数组转换为XML格式
Posted 知
篇首语:书到用时方恨少,事非经过不知难。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 PHP中数组转换为XML格式相关的知识,希望对你有一定的参考价值。
PHP中数组转换为XML格式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
最近公司要做一个API接口 输出格式要有JSON与XML格式 在PHP中 输入JSON直接json_encode就可以 但输出XML没有提供函数 于是决定自己写一个
<?php
/**
* 数组转XML类库
*
* @filesource ArrayToXML php
* @author genolf
* @version / /
*
* 使用说明
* echo ArrayToXml::parse($array root );
*/
class ArrayToXML
//文档对象
private static $doc = NULL;
//版本号
private static $version = ;
/**
* 初始化文档版本及编码
*
* @param string $version 版本号
* @param string $encoding XML编码
*/
public static function init($version $encoding)
self::$doc = new DomDocument($version $encoding);
self::$doc >formatOutput = true;
/**
* 转换数组到XML
*
* @param array $array 要转换的数组
* @param string $rootName 要节点名称
* @param string $version 版本号
* @param string $encoding XML编码
*
* @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);
//如果不是数组 则创建节点的值
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;
cha138/Article/program/PHP/201311/20849
相关参考
知识大全 Jsp结合XML+XSLT将输出转换为Html格式
Jsp结合XML+XSLT将输出转换为Html格式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
PHP生成和获取XML格式数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在做数据接口时我们
把图象文件转换成XML格式文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!利用NET框架下的Fr
以下是对php中的数组与字符串的转换函数进行了详细的整理汇总需要的朋友可以参考下 将一个字符串转化为数组str_split()用于将一个字符串转化为数组语法复制代码代码如下:str_sp
【序列化的概念】 序列化是将对象状态转换为可保持或可传输的格式的过程与序列化相对的是反序列化它将流转换为对象这两个过程结合起来可以轻松地存储和传输数据 将对象的状态信息转换为可以存储或传输的窗
PHP获取数组中重复的元素实例教程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 获取一个数组中
入门教程:学习使用PHP数组 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PHP中共有超过个新
PHP删除数组中特定元素的两种方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!这篇文章介绍了PH
PHP新手之学习数组声明 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!数组是在程序设计中为了处理方
遍历数组有多种实现方法 连续索引的数组 实现连续数组的遍历很简单因为数组的索引是连续的(……)所以我们可以首先用count()函数计算出数组中元素的个数然后建立一个for循环如下 $subj