Un file XML, si sa, altro non è che un file di testo contenente una sequenza di stringhe formattate secondo precise specifiche. In questo articolo vedremo insieme come è possibile scrivere un file XML in modo automatico sfruttando alcune librerie a disposizione di Ruby.
L'articolo non propone immediatamente una soluzione basata completamente su Ruby ma segue un approccio più formativo, mostrando i vari livelli per arrivare a scrivere il nostro XML con una sintassi object oriented.
Chi desidera immediatamente scrivere un XML sfruttando completamente le librerie Ruby può saltare immediatamente al capitolo Scrivere un XML con Builder. Questo articolo presuppone una certa conoscenza del linguaggio XML. Per ulteriori approfondimenti su XML consiglio la lettura della Guida XML di Base.
Scrivere un documento XML è tutto sommato banale, sia che si utilizzi un linguaggio di programmazione sia che si scriva il codice direttamente a mano. Prendiamo il codice seguente, che rappresenta un documento XML valido.
<?xml version="1.0" encoding="UTF-8"?> <articles> <article id="2644">Rails e Subversion</article> <article id="2619">Capistrano: il deployment Rails diventa facile</article> <article id="2616">ActiveRecord - un ORM per Ruby</article> </articles>
Se copiamo il contenuto e lo incolliamo in un file, ecco che il risultato è un file XML valido.
In questo caso non abbiamo utilizzato alcun linguaggio di programmazione ma abbiamo raggiunto ugualmente l'obiettivo: scrivere un XML. Questa soluzione, tuttavia, è scomoda e tanto più laboriosa quanto lungo è il mio file XML. Inoltre, è del tutto inutile ai fini del nostro scopo: imparare a scrivere un XML con Ruby.
Procedendo per gradi, decidiamo che il primo passo è quello di sfruttare l'uso di Ruby, variabili e stringhe. Grazie alla sintassi Heredoc possiamo inglobare il nostro XML in una stringa e poi elaborarlo. Ad esempio, vediamo come salvarlo in un file.
xml = <<XML
<?xml version="1.0" encoding="UTF-8"?>
<articles>
<article id="2644">Rails e Subversion</article>
<article id="2619">Capistrano: il deployment Rails diventa facile</article>
<article id="2616">ActiveRecord - un ORM per Ruby</article>
</articles>
XML
File.open('file.xml', 'w+') { |f| f.write(xml.chomp) }
# utilizzo chomp per rimuovere gli spazi ad inizio e fine della stringa
# => file.xml è stato creato con all'interno il contenuto di XML
Eseguendo questo script, otterremo un file chiamato file.xml con all'interno il nostro contenuto XML, disponibile nella variabile XML. Questa soluzione, sebbene contenga un'elaborazione Ruby, è poco più che un'esecuzione
automatica di un processo manuale. Può andare bene se il contenuto XML arriva in ingresso da qualche input, ad esempio un database, in alternativa richiede sempre e comunque qualcuno che scriva a mano la stringa stessa.
Questa soluzione ancora non ci convince. Proviamo a migliorarla.
Guida ActiveSupportUna panoramica sulle funzionalità più importanti di ActiveSupport:... |
Guida Ruby On Rails 2Scoprire le novità di Ruby on Rails 2, memorizzare i dati con... |
Guida Ruby e il WebUn percorso alla scoperta delle potenzialità offerte da Ruby nella... |
Ogni mercoledì, direttamente nella tua e-mail: articoli, guide e tutorial su Ruby e Ruby on Rails .
Iscriviti alla newsletter