Código PHP para almacenar datos XML en CSV

En este artículo, almacenaremos datos XML en un archivo CSV usando PHPH. XML significa un lenguaje de marcado extensible. XML es similar a HTML, pero mientras que en HTML no podemos definir nuestras propias etiquetas, en XML podemos definir nuestras propias etiquetas.

Requisitos:

Servidor XAMPP .

Estructura de XML:

<root>
  <child&gt
    <subchild>.....</subchild>
   </child>
</root>

Ejemplo: estamos tomando los detalles de los estudiantes guardados como archivo student_data.xml y almacenamos estos datos en el archivo CSV.

<?xml version="1.0" encoding="UTF-8"?> 
<student> 
    <details> 
        <id>7058</id> 
        <name>G.sravan kumar</name> 
        <address>kakumanu</address>
    </details> 
    <details> 
        <id>7004</id> 
        <name>sudheer</name> 
        <address>usa</address>
    </details> 
    <details> 
        <id>7098</id> 
        <name>Rohith</name> 
        <address>hyd</address>
    </details> 
</student>

CSV: CSV significa valor separado por comas.

Vamos a utilizar algunas funciones predefinidas para almacenar datos XML en CSV. La función file_exists() se usa para verificar si existe un archivo o directorio.

Sintaxis:

file_exists(path/filename)
  • La ruta es la ruta donde existe el archivo.
  • El nombre de archivo es el nombre del archivo.

Función simplexml_load_file() : La función simplexml_load_file() se utiliza para convertir un documento XML en un objeto.

Sintaxis:

simplexml_load_file(file)
  • El archivo es el nombre del archivo.

Función fopen(): Se utiliza para abrir un archivo.

Sintaxis:

fopen(filename, mode)
  • El nombre de archivo es el nombre del archivo.
  • Los modos son a (añadir), r (modo de lectura), w (modo de escritura)

Función fclose(): Esta función se utiliza para cerrar el archivo abierto.

Sintaxis:

fclose(file_pointer)

Función fputcsv(): La función fputcsv() se usa para formatear una línea como archivo CSV (valores separados por comas) y lo escribe en un archivo abierto. El archivo que debe leerse y los campos se envían como parámetros a la función fputcsv() y devuelve la longitud de la string escrita en caso de éxito o FALSO en caso de falla.

Sintaxis:

fputcsv(file, fields, separator)
  • archivo: Se utiliza para especificar el archivo abierto para escribir.
  • campos: Es necesario especificar de qué array obtener los datos.
  • separador: Es un caracter que especifica el separador de campo. El valor predeterminado es coma ( , )

Pasos:

  • Inicie el servidor XAMPP.

  • Abra el bloc de notas y cree un código XML y guárdelo como student_details.xml en la carpeta xampp/htdocs/geek .
  • Abra el bloc de notas y cree el código PHP y guárdelo como xml_code.php en la carpeta xampp/htdocs/geek

Datos XML: El siguiente es el contenido del archivo student_details.xml.

student_details.xml

<?xml version="1.0" encoding="UTF-8"?> 
<student> 
    <details> 
        <id>7058</id> 
        <name>G.sravan kumar</name> 
        <address>kakumanu</address>
    </details> 
    <details> 
        <id>7004</id> 
        <name>sudheer</name> 
        <address>usa</address>
    </details> 
    <details> 
        <id>7098</id> 
        <name>Rohith</name> 
        <address>hyd</address>
    </details> 
</student>

Código PHP: El siguiente es el contenido del archivo xml_code.php

PHP

<?php
  
// Open xml file that is present in
// your folder
$xmldata = 'student_details.xml';
   
// Check if your file mentioned above
// is exists or not
if (file_exists($xmldata)) {
      
    // If file exists then load your xml
    // data using simplexml_load_file
    // function
    $xml_data = simplexml_load_file($xmldata);
      
    // Open xml file using fopen in write
    // mode and download the data as
    // result.csv
    $i = fopen('result.csv', 'w');
      
    // Function call 
    Csv($xml_data, $i);
      
    // Closing file
    fclose($i);
}
  
// Function to create csv file
function Csv($xml_data, $i) {
  
    // Count data for data present in
    // xml using children function
    foreach ($xml_data->children() as $data) {
        $hasChild = (count($data->children()) 
                        > 0) ? true : false;
  
        // Data is present, then store into
        // csv by using fputcsv function
        if( ! $hasChild) {
            $arr = array($data->getName(),$data); 
            fputcsv($i, $arr ,',','"');
        }
        else {
          
            // Call function
            Csv($data, $i);
        }
    }
}
?>

Abra su navegador y escriba la ruta localhost/geek/xml_code.php en la barra de direcciones.

Vaya a su carpeta y verá que se ha creado el archivo CSV.

Salida: cuando se abre el archivo CSV, se muestra la siguiente salida.

                                                   

archivo CSV

Publicación traducida automáticamente

Artículo escrito por sravankumar8128 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 *