next up previous contents index
Search Next: XSLT Up: Beispiele Previous: Der Baumparser   Contents   Index


XML erstellen

Mit einem Writer wird formal korrektes XML erstellt und ausgegeben. Wieder gibt es zwei Möglichkeiten, einen Writer einzusetzen: Man kann Methoden aufrufen, die das XML Stück für Stück erstellen, oder man übergibt dem Writer ein komplett im Speicher vorhandenes Dokument.

Um einen Writer zu erzeugen, wird ein mit << beschreibbares Objekt benötigt, damit ist die Ausgabe auf Sockets, (temporäre) Dateien, Strings und auch Arrays möglich. Writers überprüfen, ob die Tags korrekt ineinander verschachtelt sind. Wenn es Fehler gibt, wird die NQXML::WriterError-Ausnahme aufgerufen. Inhaltsfreie Tags wie <foo attr="x"/> werden normalisert auf <foo attr="x"></foo>.

require 'nqxml/writer' 
writer = NQXML::Writer.new($stdout) 
writer.processingInstruction('xml', 'version="1.0"') 
writer.write("\n")
writer.startElement('kunde')
writer.write("\n")
writer.startElement('name')
writer.attribute('vorname',  'valigatrice')
writer.attribute('nachname', 'ballerina')
writer.endElement('name')
writer.write("\n")
writer.startElement('email')
writer.write('valigatrice@ballerinas.com')
writer.endElement('email')
writer.write("\n")
writer.endElement('kunde') 
writer.write("\n")

Mit einem fertigen Dokument lässt sich die Arbeit wesentlich vereinfachen:

require 'nqxml/treeparser'
require 'nqxml/writer'
doc = NQXML::TreeParser.new(
  File.open('personen.xml')).document 
writer = NQXML::Writer.new($stdout)
writer.writeDocument(doc) 
$stdout.puts



(C) 2002 by dpunkt.de, Armin Roehrl, Stefan Schmiedl, Clemens Wyss 2002-01-20