Ruby on Rails: XML Struktur erzeugen

In diesem Artikel wird in Ruby on Rails mittels dem Builder Projekt schnell und einfach ein XML Dokument erzeugt.

Themen sind:


Vorbereitung
Für das Beispiel wird in einem neuen Rails Projekt ein neuer Controller inklusive einem Index View erzeugt.

XML erzeugen
Erst muss im Controller mit „require“ das Builder Projekt eingebunden werden. Anschließend wird mit Builder::XmlMarkup.new eine neue XML Builder Instanz erzeugt. Mit der Methode instruct wir das XML Dokument deklariert und mit .RootTag der erste XML Tag (root) mit Inhalt versehen werden.

Edit: app/controller/xmlcreator_controller.rb

Im View ist jetzt die Instanzvariable @xmlContent auszugeben und schon wird das erste XML Dokument angezeigt.

Edit: app/view/xmlcreator/index.html.erb

Ausgabe:

Problem: Wie zu sehen ist wird am Ende der Tag <to_s/> angehängt.

Tag <to_s/> entfernen.
Der <to_s/> kann im View oder im Controller mit der Methode target!() entfernt werden.

Beispiel im View: app/view/xmlcreator/index.html.erb

Ausgabe:

Kommentare im XML
Ein Kommentar wird im XML Dokument mit der Methode comment! gesetzt.
Edit: app/controller/xmlcreator_controller.rb

Ausgabe:

Verschachtelte XML Struktur
Bisher wurde nur ein Tag mit einem einzigen Wert erzeugt, allerdings ist der Zweck von XML hierarische Strukturen abzubilden. Deswegen sollten Tags verschachtelt werden können. Mit dem Builder ist dies auch problemlos möglich, indem mit geschweiften Klammern eine Struktur aufgebaut wird.

Edit: app/controller/xmlcreator_controller.rb

Ausgabe:

XML Attribute setzen
XML Attribute werden in normalen Klammern hinter dem Tag Namen gesetzt bzw. übergeben.

Edit: app/controller/xmlcreator_controller.rb

Ausgabe:

Platzhalter
Um die Schreibweise zu verkürzen, können Platzhalter verwendet werden. Das ist sehr nützlich, wenn nicht immer wieder der vollständige Name der Instanzvariable geschrieben werden soll.

Dadurch sieht das vorige Beispiel des Controllers wie folgt aus.

Edit: app/controller/xmlcreator_controller.rb

Ausgabe:

Schleife in der XML Struktur (loop)
In einer verschachtelten XML Struktur kann es sehr sinnvoll sein das ein Gruppierung von Tags öfters wieder holt werden soll. Z.B. wenn Kontaktdaten in ein XML eingebunden werden sollen.

In dem folgenden Beispiel wird ein Array erzeugt, welches mit eine Schleife innerhalb der XML Struktur als Gruppen-ID ausgegeben wird.

 Ausgabe:

 

(Visited 115 times, 1 visits today)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.