Foros del Web » Programando para Internet » PHP »

Insertar datos en archivo XML con PHP

Estas en el tema de Insertar datos en archivo XML con PHP en el foro de PHP en Foros del Web. Quiero guardar los datos ingresados en formulario (formulario.php) Código HTML: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns= "http://www.w3.org/1999/xhtml" > <head> <meta http-equiv="Content-Type" ...
  #1 (permalink)  
Antiguo 10/10/2012, 12:24
 
Fecha de Ingreso: octubre-2012
Mensajes: 3
Antigüedad: 11 años, 6 meses
Puntos: 0
Insertar datos en archivo XML con PHP

Quiero guardar los datos ingresados en formulario (formulario.php)

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<form method="post" action="cargarxml.php">
<fieldset>
<legend>Llenar los datos</legend>
<label for="txtname">Nombre</label>
<input type="text" name="txtname" id="txtname" />
<br /><br />
<label for="txtApellido">Apellido</label>
<input type="text" name="txtApellido" id="txtApellido" /><br /><br />
<label for="list">Pais</label>
<select name="pais" id="list">
<option value="Peru">Peru</option>
<option value="Brasil">Brasil</option>
<option value="Bolivia">Bolivia</option>
</select><br /><br /><br />
<input type="submit" value="Guardar" />
</fieldset>
</form>
</body>
</html> 
en un archivo XML (usuarios.xml)

Código:
<?xml version="1.0" encoding="UTF-8"?>
<personas>
  <user>
    <nombre>Pepe</nombre>
    <apellido>Perez</apellido>
    <pais>Peru</pais>
  </user>
</personas>
Y con esta otra pagina PHP (cargarxml.php) inserto los datos del formulario a usuarios.xml pero no se acumulan sino que se reescriben

Código PHP:
<?php

$name
=$_POST['txtname'];
$apelli=$_POST['txtApellido'];
$pais=$_POST['pais'];

if(
$name != "" && $apelli != "")
{
    
$xml = new DomDocument('1.0''UTF-8');
    
$root $xml->createElement('personas');
    
$root $xml->appendChild($root);
    
    
$user=$xml->createElement('user');
    
$user =$root->appendChild($user);
    
    
$nom=$xml->createElement('nombre',$name);
    
$nom =$user->appendChild($nom);
    
    
$apellidonode=$xml->createElement('apellido',$apelli);
    
$apellidonode=$user->appendChild($apellidonode);
    
    
$paisnode=$xml->createElement('pais',$pais);
    
$paisnode=$user->appendChild($paisnode);
    
    
$xml->formatOutput true;

    
$strings_xml $xml->saveXML();

    
$xml->save('usuarios.xml');

    echo 
'Se guardo correctamente';
}
else
    echo 
'Datos vacios';

?>
Asi que alguien me puede indicar que debo cambiar en el codigo de cargarxml.php?
y si pueden ayudarme para que cada vez que se inserte un nuevo dato en este se guarde al principio

Código:
<?xml version="1.0" encoding="UTF-8"?>
<personas>
  <user>
    <nombre>Juan</nombre>
    <apellido>Paz</apellido>
    <pais>Brasil</pais>
  </user>
  <user>
    <nombre>Pepe</nombre>
    <apellido>Perez</apellido>
    <pais>Peru</pais>
  </user>
</personas>
Gracias de antemano!!!
  #2 (permalink)  
Antiguo 10/10/2012, 12:38
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Insertar datos en archivo XML con PHP

Pues es que cada vez que ejecutas el script creas de nuevo el archivo usuarios.xml, no he usado mucho las funciones de creación de xml (usualmente las uso para leer), pero imagino que debe haber algo para cargar (leer) el archivo xml antes de agregar nuevos elementos.
  #3 (permalink)  
Antiguo 10/10/2012, 20:56
 
Fecha de Ingreso: octubre-2012
Mensajes: 3
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Insertar datos en archivo XML con PHP

de ser asi que deberia cambiar en el codigo? o.O
por fa' necesito ayuda con esto :(
  #4 (permalink)  
Antiguo 14/10/2012, 07:06
 
Fecha de Ingreso: octubre-2012
Mensajes: 3
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Insertar datos en archivo XML con PHP

Alguien que me pueda ayudar con esto por favor! :(
  #5 (permalink)  
Antiguo 06/03/2013, 22:34
 
Fecha de Ingreso: marzo-2013
Mensajes: 1
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Insertar datos en archivo XML con PHP

El script y todo funciona muy bien, pero la pregunta del millon es:

Se podrá isnertar datos, sin que reemplace ya los existentes?
genere nuevos:

<user>
<nombre>qqq</nombre>
<apellido>qqq</apellido>
<pais>Brasil</pais>
</user>
</personas>

<---------- aqui genere mas ----------->

<user>
<nombre>qqq</nombre>
<apellido>qqq</apellido>
<pais>Brasil</pais>
</user>
</personas>

<user>
<nombre>qqq</nombre>
<apellido>qqq</apellido>
<pais>Brasil</pais>
</user>
</personas>

Etc... en ese orden? Alguien sabe?

Etiquetas: formulario, html, xml, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:47.