PHP中将数组转成XML格式的实现代码
2015-01-24信息快讯网
网上找的一段代码! 然后我自己根据php DOMDocument又写了一段代码,需要的朋友可以参考下。
下面是网上的
class ArrayToXML
{
/**
* The main function for converting to an XML document.
* Pass in a multi dimensional array and this recrusively loops through and builds up an XML document.
*
* @param array $data
* @param string $rootNodeName - what you want the root node to be - defaultsto data.
* @param SimpleXMLElement $xml - should only be used recursively
* @return string XML
*/
public static function toXml($data, $rootNodeName = 'data', $xml=null)
{
// turn off compatibility mode as simple xml throws a wobbly if you don't.
if (ini_get('zend.ze1_compatibility_mode') == 1)
{
ini_set ('zend.ze1_compatibility_mode', 0);
}
if ($xml == null)
{
$xml = simplexml_load_string("<?xml version='1.0' encoding='utf-8'?><$rootNodeName />");
}
// loop through the data passed in.
foreach($data as $key => $value)
{
// no numeric keys in our xml please!
if (is_numeric($key))
{
// make string key...
$key = "unknownNode_". (string) $key;
}
// replace anything not alpha numeric
$key = preg_replace('/[^a-z]/i', '', $key);
// if there is another array found recrusively call this function
if (is_array($value))
{
$node = $xml->addChild($key);
// recrusive call.
ArrayToXML::toXml($value, $rootNodeName, $node);
}
else
{
// add single node.
$value = htmlentities($value);
$xml->addChild($key,$value);
}
}
// pass back as string. or simple xml object if you want!
return $xml->asXML();
}
}
下面是我编辑过的代码
function arrtoxml($arr,$dom=0,$item=0){
if (!$dom){
$dom = new DOMDocument("1.0");
}
if(!$item){
$item = $dom->createElement("root");
$dom->appendChild($item);
}
foreach ($arr as $key=>$val){
$itemx = $dom->createElement(is_string($key)?$key:"item");
$item->appendChild($itemx);
if (!is_array($val)){
$text = $dom->createTextNode($val);
$itemx->appendChild($text);
}else {
arrtoxml($val,$dom,$itemx);
}
}
return $dom->saveXML();
}
数组转换成XML格式
<?
$elementLevel = 0 ;
function array_Xml($array, $keys = '')
{
global $elementLevel;
if(!is_array($array))
{
if($keys == ''){
return $array;
}else{
return "\n<$keys>" . $array . "</$keys>";
}
}else{
foreach ($array as $key => $value)
{
$haveTag = true;
if (is_numeric($key))
{
$key = $keys;
$haveTag = false;
}
/**
* The first element
*/
if($elementLevel == 0 )
{
$startElement = "<$key>";
$endElement = "</$key>";
}
$text .= $startElement."\n";
/**
* Other elements
*/
if(!$haveTag)
{
$elementLevel++;
$text .= "<$key>" . array_Xml($value, $key). "</$key>\n";
}else{
$elementLevel++;
$text .= array_Xml($value, $key);
}
$text .= $endElement."\n";
}
}
return $text;
}
?>
函数描述及例子
<? $array = array( "employees" => array( "employee" => array( array( "name" => "name one", "position" => "position one" ), array( "name" => "name two", "position" => "position two" ), array( "name" => "name three", "position" => "position three" ) ) ) ); echo array_Xml($array); ?>
如何用PHP实现插入排序?
apache和php之间协同工作的配置经验分享
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
简单的php数据库操作类代码(增,删,改,查)
PHP插入排序实现代码
精美漂亮的php分页类代码
php页面跳转代码 输入网址跳转到你定义的页面
php中将html中的br换行符转换为文本输入中的换行符
自定义php类(查找/修改)xml文档
php中DOMElement操作xml文档实例演示
比较简单的百度网盘文件直链PHP代码
php添加文章时生成静态HTML文章的实现代码
php截取字符串并保留完整xml标签的函数代码
PHP读取xml方法介绍
用PHP编写和读取XML的几种方式
PHP 防注入函数(格式化数据)
PHP程序开发范例学习之表单 获取文本框的值
php记录日志的实现代码
判断Keep-Alive模式的HTTP请求的结束的实现代码
php学习笔记(三)操作符与控制结构
PHP几个数学计算的内部函数学习整理
PHP缓存技术的使用说明
php 文件上传类代码
php代码运行时间查看类代码分享
用PHP实现的四则运算表达式计算实现代码
php XPath对XML文件查找及修改实现代码
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
用PHP的超级变量$_GET获取HTML表单(Form) 数据
深入理解PHP原理之错误抑制与内嵌HTML分析
php模拟asp中的XmlHttpRequest实现http请求的代码
用PHP读取和编写XML DOM的实现代码
php simplexmlElement操作xml的命名空间实现代码