Maison  >  Article  >  développement back-end  >  Comment convertir un tableau en SimpleXML en PHP

Comment convertir un tableau en SimpleXML en PHP

藏色散人
藏色散人original
2019-01-25 13:22:313228parcourir

Il est souvent nécessaire de stocker les données au format XML dans une base de données ou un fichier pour une utilisation ultérieure. Pour répondre à cette exigence, les données doivent être converties en XML et le fichier XML enregistré.

Comment convertir un tableau en SimpleXML en PHP

Les fonctions d'extension SimpleXML fournissent un ensemble d'outils pour convertir du XML en objets. Ces objets gèrent les sélecteurs de propriétés ordinaires et les itérateurs de tableau.

Exemple 1 :

<?php 
// 将php数组转换为xml文档的代码

//定义一个将数组转换成xml的函数。
function arrayToXml($array, $rootElement = null, $xml = null) { 
    $_xml = $xml; 
      
    // 如果没有$rootElement,则插入$rootElement
    if ($_xml === null) { 
        $_xml = new SimpleXMLElement($rootElement !== null ? $rootElement : &#39;<root/>&#39;); 
    } 
      
    // 访问所有键值对 
    foreach ($array as $k => $v) { 
          
        // 如果有嵌套数组 
        if (is_array($v)) {  
              
            // 调用嵌套数组的函数
            arrayToXml($v, $k, $_xml->addChild($k)); 
            } 
              
        else { 
              
              
            $_xml->addChild($k, $v); 
        } 
    } 
      
    return $_xml->asXML(); 
} 
  
// 创建一个用于演示的数组 
$my_array = array ( 
&#39;name&#39; => &#39;GFG&#39;, 
&#39;subject&#39; => &#39;CS&#39;, 
  
    // 创建嵌套数组。
    &#39;contact_info&#39; => array ( 
    &#39;city&#39; => &#39;Noida&#39;, 
    &#39;state&#39; => &#39;UP&#39;, 
    &#39;email&#39; => &#39;448199179@qq.com&#39;
    ), 
); 
  
// 调用arrayToxml函数并打印结果
echo arrayToXml($my_array); 
?>

Sortie :

<?xml version="1.0"?>
<root>
    <name> GFG </name>
    <subject> CS </subject>
    <contact_info >
        <city > Noida < /city >
        <state > UP < /state >
        <email > 448199179@qq.com </email>
    <contact_info>
<root>

Le problème ci-dessus peut être résolu à l'aide de la fonction array_walk_recursive(). Cette fonction convertit un tableau en un document XML, où les clés du tableau sont converties en valeurs et les valeurs du tableau sont converties en éléments XML.

Exemple 2 :

<?php 
// 将php数组转换为xml文档的代码
//创建一个数组
$my_array = array ( 
    &#39;a&#39; => &#39;x&#39;, 
    &#39;b&#39; => &#39;y&#39;, 
      
    // creating nested array 
    &#39;another_array&#39; => array ( 
        &#39;c&#39; => &#39;z&#39;, 
    ), 
); 
  
// 这个函数使用root元素创建一个xml对象。
$xml = new SimpleXMLElement(&#39;<root/>&#39;); 
  
// 这个函数重新将数组元素添加到xml文档中
array_walk_recursive($my_array, array ($xml, &#39;addChild&#39;)); 
  
// 这个函数打印xml文档。 
print $xml->asXML(); 
?>

Sortie :

<?xml version =“1.0”?> <root> 
       <x> a </ x> 
       <y> b </ y> 
       <z> c </ z> </ root>

Remarque :

Si Type d'erreur générée par le système :

PHP Fatal error: Uncaught Error: Class ‘SimpleXMLElement’ not found in /home/6bc5567266b35ae3e76d84307e5bdc78.php:24 ,

Ensuite, installez simplement les packages php-xml, php-simplexml.

Cet article concerne la méthode de conversion de tableaux en SimpleXML en PHP. J'espère qu'il sera utile aux amis dans le besoin !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en 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