PHP数组转XML

  PHP可以将数组转换成xml格式,简单的办法是遍历数组,然后将数组的key/value转换成xml节点,再直接echo输出了,如:

  

function arrayToXml($arr){ 
  $xml = "<root>"; 
  foreach ($arr as $key=>$val){ 
  if(is_array($val)){ 
  $xml.="<".$key.">".arrayToXml($val)."</".$key.">"; 
  }else{ 
  $xml.="<".$key.">".$val."</".$key.">"; 
  } 
  } 
  $xml.="</root>"; 
  return $xml; 
}

 另一种方法是利用DOMDocument来生成xml结构:

function arrayToXml($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 { 
    arrayToXml($val,$dom,$itemx); 
    } 
  } 
  return $dom->saveXML(); 
 } 

  这两种格式都不会乱码。

原文地址:https://www.cnblogs.com/lgqtecng/p/6438295.html