Convierta una array multidimensional en un archivo XML en PHP

Dada una array multidimensional, la tarea es convertir esta array en un archivo XML. Para convertir la array multidimensional en un archivo xml, cree un archivo XML y use las funciones appendChild() y createElement() para agregar un elemento de array en el archivo XML.

Ejemplo:

  • Primero, cree una array multidimensional de PHP para convertir esa array al formato de archivo XML.

    $array = array (
        'company' => 'Gfg',
        'employe' => array (
            '0' => array (
                'name' => 'Jatin Das',
                'age' => '34'
            ),
            '1' => array (
                'name' => 'Mohit Mal',
                'age' => '30'
            ),
            '2' => array (
                'name' => 'Shubham Jha',
                'age' => '24'
            ),
            '3' => array (
                'name' => 'Harsha Bhosle',
                'age' => '29'
            )
        )
    );
  • Ahora, necesita crear una función definida por el usuario generatXML().

    function generateXML($data) {
          
        $title = $data['company'];
        $rowCount = count($data['employe']);
       
        // Create the xml document
        $xmlDoc = new DOMDocument();
       
        $root = $xmlDoc -> appendChild($xmlDoc ->
                                createElement("geeks"));
          
        $root -> appendChild($xmlDoc -> 
                            createElement("title", $title));
        $root -> appendChild($xmlDoc -> 
                      createElement("totalRows", $rowCount));
          
        $tabUsers = $root -> appendChild($xmlDoc ->
                                createElement('rows'));
       
        foreach($data['employe'] as $user) {
            if (!empty($user)) {
                $tabUser = $tabUsers -> appendChild($xmlDoc -> 
                                       createElement('employe'));
                foreach($user as $key => $val) {
                    $tabUser -> appendChild($xmlDoc ->
                                      createElement($key, $val));
                }
            }
        }
       
        header("Content-Type: text/plain");
       
        // Make the output
        $xmlDoc -> formatOutput = true;
       
        // Save xml file
        $file_name = str_replace(' ', '_', $title) . '.xml';
          
        $xmlDoc -> save($file_name);
       
        // Return xml file name
        return $file_name;
    }
  • Luego use la función generateXML() y pase los datos de la array para convertir la array a XML en PHP.

    generateXML($array);
  • Producción:

    <geeks>
        <title>Gfg</title>
        <totalRows>4</totalRows>
        <rows>
            <employe>
                <name>Jatin Das</name>
                <age>34</age>
            </employe>
            <employe>
                <name>Mohit Mal</name>
                <age>30</age>
            </employe>
            <employe>
                <name>Shubham Jha</name>
                <age>24</age>
            </employe>
            <employe>
                <name>Harsha Bhosle</name>
                <age>29</age>
            </employe>
        </rows>
    </geeks>

Publicación traducida automáticamente

Artículo escrito por legendblogsmail y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *