PHP实现Xml和数组的相互转化功能示例有什么?

PHP实现Xml和数组的相互转化功能示例有什么?

本文实例讲述了php实现XML和数组的相互转化功能。分享给大家供大家参考,具体如下:

数组转化为xml:

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转化为数组:

function xmltoarr($path){
 $xmlfile = file_get_contents($path);//提取xml文档中的内容以字符串格式赋给变量
 $ob= simplexml_load_string($xmlfile);//将字符串转化为变量
 $json = json_encode($ob);//将对象转化为JSON格式的字符串
 $configData = json_decode($json, true);//将JSON格式的字符串转化为数组
 print_r($configData);
}

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

在线格式化XML/在线压缩XML
http://tools.jb51.net/code/xmlformat

XML在线压缩/格式化工具:
http://tools.jb51.net/code/xml_format_compress

XML代码在线格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat

希望本文所述对大家PHP程序设计有所帮助。