Maison >développement back-end >tutoriel php >Comment puis-je convertir efficacement un tableau PHP multidimensionnel en un objet SimpleXML ?

Comment puis-je convertir efficacement un tableau PHP multidimensionnel en un objet SimpleXML ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-18 21:54:14970parcourir

How can I efficiently convert a multi-dimensional PHP array into a SimpleXML object?

Conversion de tableaux en SimpleXML en PHP

Lorsque vous travaillez avec des données XML en PHP, il peut être nécessaire de convertir des tableaux en objets SimpleXML pour faciliter traitement et manipulation.

Fonction pour Array to XML Conversion

Voici une fonction PHP qui peut être utilisée pour convertir des tableaux multidimensionnels en objets SimpleXML :

function array_to_xml( $data, &$xml_data ) {
    foreach( $data as $key => $value ) {
        if( is_array($value) ) {
            if( is_numeric($key) ){
                $key = 'item'.$key; //dealing with <0/>..<n/> issues
            }
            $subnode = $xml_data->addChild($key);
            array_to_xml($value, $subnode);
        } else {
            $xml_data->addChild("$key",htmlspecialchars("$value"));
        }
     }
}

Exemple d'utilisation

Considérez le tableau suivant :

$data = array('total_stud' => 500,
    'student' => array(
        0 => array(
            'id' => 1,
            'name' => 'abc',
            'address' => array(
                'city' => 'Pune',
                'zip' => '411006'
            )
        ),
        1 => array(
            'id' => 2,
            'name' => 'xyz',
            'address' => array(
                'city' => 'Mumbai',
                'zip' => '400906'
            )
        )
    )
);

Pour convertir ce tableau en XML, vous pouvez créer un Objet SimpleXMLElement :

$xml_data = new SimpleXMLElement('<?xml version="1.0"?><student_info></student_info>');

Ensuite, appelez la fonction array_to_xml :

array_to_xml($data, $xml_data);

Cela générera le XML suivant :

<?xml version="1.0"?>
<student_info>
    <total_stud>500</total_stud>
    <student>
        <id>1</id>
        <name>abc</name>
        <address>
            <city>Pune</city>
            <zip>411006</zip>
        </address>
    </student>
    <student>
        <id>1</id>
        <name>abc</name>
        <address>
            <city>Mumbai</city>
            <zip>400906</zip>
        </address>
    </student>
</student_info>

Vous pourrez ensuite enregistrer ou traiter le XML généré selon les besoins.

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