Rafael F. Rodríguez dijo [Wed, Oct 29, 2003 at 01:44:52PM +0000]: > Hola lista :-) .
¡Hola tonta! > Primero perdonad por el ot, pero necesito una ayudita con perl, > pero no encuentro solución en ningún sitio :-(. Te sugiero [EMAIL PROTECTED] ;-) > El problema es el siguiente, con dbi abro con un select una > relación > de datos de diversas tablas, mi problema es que quiero exportarla a > un archivo xml basandome en una estructura que ya me indicaron en un > archivo xsd. > (...) > La salida del xml debe ser como lo que sigue: > <?xml version="1.0" encoding="UTF-8"> > <Prestados xmins=""http://www.midominio/listado" > xmins:sxi=""www.w3org/2001/XMLSchema-isntance" > xsi:schemaLocation="http://www.midominio/listado.xsd"> > <Persona> > <Nombre>Rafael</Nombre> > <Prestamos> > <Libro>Ingles</Libro> > <Libro>Linux</Libro> > <Libro>Perl</Libro> > </Prestamos> > </Persona> > <Persona> > <Nombre>Angel</Nombre> > <Prestamos> > <Libro>Mates</Libros> > </Prestamos> > </persona> > </Prestados> > > He intentando de varias formas como XML::simple y con > XML::generator::DBI, pero aun no lo he conseguido, ¿alguna idea ó > código? Ummm... Mira, esta definitivamente no es una solución elegante - No uso ningún módulo para generar XML, pero como sea, esto sirve para tu necesidad específica. # Mandamos el preámbulo de XML print << 'XML_HEADER_END'; <?xml version="1.0" encoding="UTF-8"> <Prestados xmins=""http://www.midominio/listado" xmins:sxi=""www.w3org/2001/XMLSchema-isntance" xsi:schemaLocation="http://www.midominio/listado.xsd"> XML_HEADER_END # Conforme vayamos recibiendo los datos, los vamos soltando. $sth1 = $dbh->prepare('SELECT codigo, nombre FROM nombre'); $sth2 = $dbh->prepare('SELECT codigo_libro FROM libros_prestados WHERE codigo_nombre_prestado = ?'); $sth1->execute; while (my @persona = $sth1->fetchrow_array) { print "<Persona>\n <Nombre>$persona[1]</Nombre> <Prestamos>\n"; # Ejecutamos la consulta 2 con el ID de la persona en cuestión $sth2->execute($persona[0]); while (my @libro = $sth2->fetchrow_array) { print " <Libro>$libro[1]</Libro>\n"; } print " </Prestamos>\n</Persona>\n"; } print "</Prestados>\n"; No lo probé, sólo lo escribí, así que probablemente haya algún errorcillo sintáctico por ahí... Pero para escupir XML sencillito, funciona. Saludos, -- Gunnar Wolf - [EMAIL PROTECTED] - (+52-55)5630-9700 ext. 1366 PGP key 1024D/8BB527AF 2001-10-23 Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF
signature.asc
Description: Digital signature