Maison  >  Article  >  développement back-end  >  Partage de code pour convertir récursivement des tableaux php en XML

Partage de code pour convertir récursivement des tableaux php en XML

高洛峰
高洛峰original
2016-12-22 15:07:15938parcourir

La nécessité de convertir des tableaux en XML en PHP est courante et il existe de nombreuses méthodes d'implémentation. Baidu a recherché diverses méthodes d'implémentation, mais en gros, ils ont emprunté certains composants. J'ai moi-même écrit une méthode de regroupement de chaînes, qui prend en charge les tableaux multidimensionnels. À titre indicatif seulement, n'hésitez pas à nous faire savoir s'il y a des défauts !

/**
*  将数组转换为xml
*  @param array $data  要转换的数组
*  @param bool $root   是否要根节点
*  @return string     xml字符串
*  @author Dragondean
*  @url  http://www.cnblogs.com/dragondean
*/
function arr2xml($data, $root = true){
  $str="";
  if($root)$str .= "<xml>";
  foreach($data as $key => $val){
    if(is_array($val)){
      $child = arr2xml($val, false);
      $str .= "<$key>$child</$key>";
    }else{
      $str.= "<$key><![CDATA[$val]]></$key>";
    }
  }
  if($root)$str .= "</xml>";
  return $str;
}

Ce qui précède est la méthode d'implémentation. Le premier paramètre est le tableau que vous souhaitez convertir. Le deuxième paramètre facultatif définit s'il faut ajouter le nœud racine b2a0af5a8fd26276da50279a1c63a57a

Code de test :

$arr=array(&#39;a&#39;=>&#39;aaa&#39;,&#39;b&#39;=>array(&#39;c&#39;=>&#39;1234&#39; , &#39;d&#39; => "asdfasdf"));
echo arr2xml($arr);

Le résultat après l'exécution du code est :

<xml><a><![CDATA[aaa]]></a><b><c><![CDATA[1234]]></c><d><![CDATA[asdfasdf]]></d></b></xml>

Ce qui précède est l'intégralité du contenu de cet article, j'espère que vous le ferez j'aime ça.


Pour plus de partage de code lié à la conversion récursive de tableaux php en XML, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn