Perl/XML::Writer

De Astillas.net


Módulo XML::Writer
Versión 0.615-1
Uso Producción de datos
Propósito Permite crear textos en formato XML.


Conceptos

Este módulo permite crear documentos en XML de forma programática. Mantiene constantemente la pista de dónde está dentro de una estructura XML y verifica que ésta sea correcta sintácticamente.

Su empleo requiere de los siguientes pasos:

  1. Crear una instancia de la clase con los parámetros generales
  2. Añadir encabezados declarativos
  3. Repetir los siguientes pasos mientras sea necesario:
    1. Abrir etiquetas
    2. Añadir elementos
    3. Cerrar etiquetas
  4. Validar el documento

El texto XML que el módulo va generando en el proceso se envía a la salida estándar del proceso a menos que se defina un lugar al que enviarlo. Dicho lugar puede ser:

  1. Un objeto heredero de IO::Handle
  2. Una referencia a un valor escalar
  3. Un objeto que disponga del método print

Referencia rápida

use XML::Writer;

my $output = '';

# Creamos la instancia indicando que el texto 
# lo añada a la variable $output, que indente 
# la salida con cuatro espacios y que inserte un
# salto de línea tras cada elemento
my $xml = XML::Writer->new( OUTPUT       => \$output,
                            DATA_MODE    => 1, 
                            DATA_INDENT  => 4, );
 
# Enviamos los encabezados mínimos junto con la 
# codificación a emplear
$xml->xmlDecl("UTF-8");

# Abrimos una etiqueta 
$xml->startTag('registro');

# Enviamos algunos elementos 
$xml->dataElement( nombre => 'Victor' );
$xml->dataElement( email => 'victor@astillas.net' );

# Cerramos (él recuerda la última etiqueta abierta)
$xml->endTag();

# y validamos que sólo exista un elemento 'document' 
# y las etiquetas abiertas estén cerradas
$xml->end();

# Mostramos el resultado 
say $output;

El resultado de lo anterior es algo como:

<?xml version="1.0" encoding="UTF-8"?>

<registro>
    <nombre>Victor</nombre>
    <email>victor@astillas.net</email>
</registro>