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:
Estructura de XML:
<root> <child> <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.
Publicación traducida automáticamente
Artículo escrito por sravankumar8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA