¿Cómo generar un archivo XML dinámicamente usando PHP?

Se puede generar un archivo usando PHP desde la base de datos, y se puede hacer por el método estático o dinámico en PHP. Los métodos estáticos se pueden llamar directamente, sin crear una instancia de una clase. Aquí vamos a discutir cómo crear un archivo XML dinámicamente.
 

  • Lo primero que tenemos que hacer es buscar los datos de la base de datos. Para eso, necesitamos escribir una consulta de selección que obtenga todos los detalles de la tabla. 
$result=mysqli_query($con, "Select * from Table_name"); 
  • Ahora necesitamos crear un archivo XML usando DOMDocument en el que especificaremos la versión. DOMDocument representa un documento HTML o XML completo, sirve como la raíz del árbol del documento. 
$xml = new DOMDocument("1.0");
  • Ahora, crearemos elementos del documento XML. Creará un nuevo Node de elementos usando la función createElement(). Crea una nueva instancia de la clase DOMElement. Este Node no aparecerá en el documento a menos que se inserte con (por ejemplo) DOMNode::appendChild()
$fitness=$xml->createElement("users");
  • Hasta ahora, hemos creado un archivo XML. Entonces, para mostrar esto, vamos a usar una etiqueta de eco que muestra los datos de un archivo en formato XML. Para guardar el archivo XML usaremos el comando guardar. 
echo "".$xml->saveXML()."";

Lo siguiente que debemos hacer es buscar los elementos de la tabla. 
Ejemplo: si una tabla tiene dos elementos, entonces debería crear dos elementos XML. Para eso, simplemente usaremos un bucle while dentro del cual habrá una función mysql_fetch_array para obtener todos los datos de la tabla.
Dado que la base de datos está conectada a un servidor local, no se ejecutará en su ide, pero una vez que haya creado la base de datos, funcionará bien. Para crear la base de datos, siga el procedimiento mencionado a continuación. 
 

  • Cree una base de datos de fitness en mysql utilizando un servidor local.
  • Luego crea un usuario de tabla.
  • Luego agregue las columnas: uid, nombre, correo electrónico, contraseña, descripción, rol, foto.

Programa: 

php

<?php
$con=mysqli_connect("localhost", "root", "", "fitness");
 
if(!$con){
    echo "DB not Connected...";
}
else{
$result=mysqli_query($con, "Select * from users");
if($result>0){
$xml = new DOMDocument("1.0");
 
// It will format the output in xml format otherwise
// the output will be in a single row
$xml->formatOutput=true;
$fitness=$xml->createElement("users");
$xml->appendChild($fitness);
while($row=mysqli_fetch_array($result)){
    $user=$xml->createElement("user");
    $fitness->appendChild($user);
     
    $uid=$xml->createElement("uid", $row['uid']);
    $user->appendChild($uid);
     
    $uname=$xml->createElement("uname", $row['uname']);
    $user->appendChild($uname);
     
    $email=$xml->createElement("email", $row['email']);
    $user->appendChild($email);
     
    $password=$xml->createElement("password", $row['password']);
    $user->appendChild($password);
     
    $description=$xml->createElement("description", $row['description']);
    $user->appendChild($description);
     
    $role=$xml->createElement("role", $row['role']);
    $user->appendChild($role);
     
    $pic=$xml->createElement("pic", $row['pic']);
    $user->appendChild($pic);
     
}
echo "<xmp>".$xml->saveXML()."</xmp>";
$xml->save("report.xml");
}
else{
    echo "error";
}
}
?>

Producción: 
 

Publicación traducida automáticamente

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