Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Crear XML desde PHP

Estas en el tema de Crear XML desde PHP en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Saludos a todos los integrantes de este foro; luego de buscar en San google es que recurro a ustedes porque no encuentro la forma de ...
  #1 (permalink)  
Antiguo 22/07/2009, 11:01
 
Fecha de Ingreso: agosto-2006
Mensajes: 22
Antigüedad: 18 años, 5 meses
Puntos: 0
Crear XML desde PHP

Saludos a todos los integrantes de este foro; luego de buscar en San google
es que recurro a ustedes porque no encuentro la forma de como poder generar
un XML de la forma como necesito. Les detallo:

El XMl que necesito es de la siguiente manera:
Código HTML:
<docentes>
 <docentes01>
   <nombre apellido='Rojas Villanueva'>Rodolfo</nombre>
   <nombre apellido='Castañeda Sifuentes'>Fernando</nombre>
 </docentes01>
 <docentes02>
   <dni fecha='20-10-75'>32961595</dni>
 </docentes02>
</docentes> 
Claro que esto va a ser leido de una base de datos; el codigo php actual que
tengo es:
Código PHP:
$doc = new DomDocument("1.0");
$root $doc->createElement("Docentes");
$doc->appendChild($root);
$Nombre $doc->createElement("Nombre");

$result=mysql_query("SELECT * FROM prueba") or die("No se encuentra la
tabla"
);
$suma mysql_query("SELECT COUNT(*) FROM prueba") or die("No se pudo contar
la tabla"
);
for (
$i=0$i<$suma$i++) {
    While (
$row mysql_fetch_row($result)) {
        
$root ->appendChild($Nombre);
        
$Texto=$doc->createTextNode(utf8_encode($row[0]));
        
$Nombre->appendChild($Texto);
    }
}

$doc->save("creado.xml"); 
Este codigo me genera el siguiente XML:
Código HTML:
<Docentes><Nombre>RodolfoFernando</Nombre></Docentes> 
He intentado de diferentes formas y no he tenido ningun resultado.

Les estaria muy agradecidos con su ayuda en mi codigo anticipadamente.
  #2 (permalink)  
Antiguo 22/07/2009, 12:29
Avatar de alguienmas  
Fecha de Ingreso: mayo-2009
Mensajes: 62
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: Crear XML desde PHP

El problema es que solo haz creado un unico nodo "nombre" y le vas agregando nodos de texto a ese unico tag, cuando debieras crear uno por cada registro de la consulta SQL.

mira tu tienes esto:

Código PHP:
While ($row mysql_fetch_row($result)) {
        
$root ->appendChild($Nombre);
        
$Texto=$doc->createTextNode(utf8_encode($row[0]));
        
$Nombre->appendChild($Texto);
    } 
Cambialo asi:
Código PHP:
 While ($row mysql_fetch_row($result)) {
        
$root ->appendChild($Nombre);
        
$Texto=$doc->createTextNode(utf8_encode($row[0]));
        
$Nombre $doc->createElement("Nombre");   //     esto debes agregar
        
$Nombre->appendChild($Texto);
    } 
espero te sirva saludos
  #3 (permalink)  
Antiguo 22/07/2009, 14:31
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Crear XML desde PHP

Hola

Mira yo hice esto utilizando un archivo de texto plano, pero puedes sacar la idea para hacer el tuyo, de hecho el xml que se genera mantiene la misma estructura que describes tu.

Código:
$ruta = dirname(__FILE__).DIRECTORY_SEPARATOR.'datos.txt';
$datos = file($ruta);

unset($datos[0]); //eliminamos las cabeceras
$xml = new DomDocument("1.0");

$root = $xml->createElement("docentes");
$xml->appendChild($root);
/* ESTA PARTE ES LA QUE DEBE ITERARSE PARA GENERAR MULTIPLES NODOS*/
//NODO1
foreach ($datos as $i => $valor)
{
	$myArray = explode('|', trim($valor));
	
	$docentes = $xml->createElement("docente");
	$root->appendChild($docentes);
	
	$nNombre = $xml->createElement("nombre");
	$nNombretn= $xml->createTextNode($myArray[0]);
	$nNombre->appendChild($nNombretn);
	$docentes->appendChild($nNombre);
	
	$attrNombre = $xml->createAttribute("apellido");
	$txtAttr = $xml->createTextNode($myArray[1]);
	$attrNombre->appendChild($txtAttr);
	$nNombre->appendChild($attrNombre);
}	
$xml->save('example.xml');
Espero te sirva.

Saludos
  #4 (permalink)  
Antiguo 25/07/2009, 12:22
 
Fecha de Ingreso: agosto-2006
Mensajes: 22
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Crear XML desde PHP

Gracias a los dos, voy a probarlo. Algo aparte de esto; por casualidad no conocen de algun manual, curso o tutor online en donde pueda aprender mas de XML. Les agradeceria mucho.
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 01:54.