• Publicidad

Recomendación de módulo XML

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Recomendación de módulo XML

Notapor zozo666 » 2008-05-27 07:18 @346

Buenos días, perleros, necesitaría que me recomendaran algún módulo de Perl para manejar Archivos XML en forma fácil y rápida.

Lo único que tendría que hacer es un script que lea los datos de una base de datos y me los transforme en formato XML.

¿Me recomiendan algún módulo en especial?

Gracias
zozo666
Perlero nuevo
Perlero nuevo
 
Mensajes: 139
Registrado: 2007-05-26 10:36 @483

Publicidad

Notapor explorer » 2008-05-27 08:06 @379

Por aquí usamos XML::Simple y XML::Twig. Hay varios hilos en este foro con ejemplos.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor zozo666 » 2008-05-27 13:17 @595

Hola. Más específicamente, lo que voy a modificar es esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using xml Syntax Highlighting
<?xml version="1.0"?>
<?xml-stylesheet href="/eqcenter/catalogs/rssxsl.php?feed=eqs1day-M1.xml" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <item><id>Tue, 27 May 2008 12:17:28 GMT</id><title>M 1.5, Southern California</title><description>May 27, 2008 12:17:28 GMT</description><hora>25/05/08 14:30:00</hora><geo:lat>33.3073</geo:lat><geo:long>-116.8570</geo:long><dc:subject>1</dc:subject><dc:subject>pasthour</dc:subject><dc:subject>13.40 km</dc:subject><guid isPermaLink="false">ci10327001</guid></item>

    <item><id>Tue, 27 May 2008 12:10:06 GMT</id><title>M 2.2, Southern California</title><description>May 27, 2008 12:10:06 GMT</description><hora>25/05/08 14:30:00</hora><geo:lat>33.1795</geo:lat><geo:long>-115.6383</geo:long><dc:subject>2</dc:subject><dc:subject>pasthour</dc:subject><dc:subject>3.60 km</dc:subject><guid isPermaLink="false">ci10326993</guid></item>
       
    <item><id>Tue, 27 May 2008 11:57:41 GMT</id><title>M 1.7, Southern California</title><description>May 27, 2008 11:57:41 GMT</description><hora>25/05/08 14:30:00</hora><geo:lat>33.1343</geo:lat><geo:long>-115.6123</geo:long><dc:subject>1</dc:subject><dc:subject>pastday</dc:subject><dc:subject>3.00 km</dc:subject><guid isPermaLink="false">ci10326981</guid></item>

  </channel>
</rss>
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


¿Cualquiera de los 2 módulos nombrados anteriormente me sirve para este tipo de xml?

Esta pregunta está formulada en base a que es el XML es un RSS y por lo tanto no sé si los módulos se compartan igual a la hora de manejarlos.

Muchas gracias.
zozo666
Perlero nuevo
Perlero nuevo
 
Mensajes: 139
Registrado: 2007-05-26 10:36 @483

Notapor explorer » 2008-05-27 14:35 @649

En CPAN me salen 136 módulos para tratar los RSS. Pero como siguen siendo XML, puedes usar cualquiera de los 1604 módulos sobre XML que hay, o usar alguno de los dos comentados.

Todo depende de lo que quieres hacer con ese fichero. Que no lo has dicho.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor zozo666 » 2008-05-27 19:46 @865

Ok , yo pregunto por que quiero buscar la manera más fácil de tratar al xml que mostré anteriormente.
Lo único que tendría que hacer es que mediante la consulta que hago a la base de datos, me arme el XML que aparece ahí, o sea, cada vez que realizo la consulta, me cree todo el XML, obviamente, solo lo que está entre las etiquetas channel.

Acá dejo una forma de lo que tendría que hacer:

Mediante esta consulta:

Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
SELECT id,titulo,descripcion,hora,lat,lon FROM mapa WHERE Fecha > NOW()
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Creo el xml de esta manera (pongo de la manera que utiliza el HTML::Template para listar los datos de una consulta, así se entiende mejor lo que necesito):

Sintáxis: [ Descargar ] [ Ocultar ]
Using xml Syntax Highlighting
<?xml version="1.0"?>
<?xml-stylesheet href="/eqcenter/catalogs/rssxsl.php?feed=eqs1day-M1.xml" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
<TMPL_LOOP consulta>
    <item><id><TMPL_VAR id></id><title><TMPL_VAR titulo></title><description><TMPL_VAR descripcion></description><hora><TMPL_VAR Hora></hora><geo:lat><TMPL_VAR lat></geo:lat><geo:long><TMPL_VAR lon></geo:long><dc:subject>1</dc:subject><dc:subject>pasthour</dc:subject><dc:subject>13.40 km</dc:subject><guid isPermaLink="false">ci10327001</guid></item>
</TMPL_LOOP>
</channel>
</rss>
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Esto es solo un ejemplo de lo que tendría que hacer, y lo armé de esa manera para que se entienda lo que necesito que haga la función de Perl que me arme el XML: Ojalá se halla entendido y así saber qué módulo me conviene utilizar.

Muchas gracias.
zozo666
Perlero nuevo
Perlero nuevo
 
Mensajes: 139
Registrado: 2007-05-26 10:36 @483

Notapor explorer » 2008-05-27 22:20 @972

Hay módulos específicos para armar RSS, como el XML::RSS, aunque a veces el resultado no es el que se espera.

Si tienes muy clara la estructura interna que quieres, con el HTML::Template que has mostrado, te vale.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor zozo666 » 2008-05-27 23:29 @020

El problema es que quiero leer el archivo XML y luego guardarlo con las modificaciones que le genere, se entiende.

En el caso de que yo lo haga con HTML::Template no me va a servir, ya que necesitaría la forma de leer el archivo, pasarle los parámetros y luego guardarlo con las modificaciones establecidas.

Esto creo que no se puede hacer con el HTML::Template, por eso pregunté un módulo que genere un XML no tan complicado, como es el que mostré yo anteriormente, la estructura va ser así definitivamente.

La idea mía pasa más por armar el XML sin importar tanto el RSS, quiero saber si los mismos módulos me sirven para armar un XML de estas características.

Por lo que tengo entendido un RSS es muy parecido al XML, por lo tanto ¿Podría usar esos módulos?

Gracias
zozo666
Perlero nuevo
Perlero nuevo
 
Mensajes: 139
Registrado: 2007-05-26 10:36 @483

Notapor explorer » 2008-05-28 02:25 @142

Un fichero RSS es un fichero que forma parte de la familia de XML <http://es.wikipedia.org/wiki/RSS>.

Se podría usar XML::Simple para leer el fichero, modificarle y luego grabarle, pero hay que tener mucho cuidado, porque XML::Simple no suele mantener el orden de las entradas contenidas en el nodo raíz. Como los RSS suelen tener algún identificador, contador o fecha, no es importante ese orden.

En CPAN hay módulos para leer RSS, como XML::RSS::Parser, por ejemplo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor zozo666 » 2008-05-30 08:56 @414

Hola, estoy usando XML::Simple pero tengo un problema. Leo el archivo perfectamente, pero no sé cómo hacer para modificarlo y guardarlo, y en la documentación no encuentro la forma para hacer esto.

¿Será que el módulo solo lee los XML?

Gracias
zozo666
Perlero nuevo
Perlero nuevo
 
Mensajes: 139
Registrado: 2007-05-26 10:36 @483

Notapor explorer » 2008-05-30 13:48 @617

Pues no, también se puede modificar.

En este foro hay algunos ejemplos. Usa el sistema de búsqueda. Busca por XML::Simple, activando la opción de buscar por todas las palabras.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 30 invitados