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的命名空间实现代码