Sonntag, 9. August 2009

XML Dateien mit nokogiri parsen

Edit: Entweder ich bin zu doof, oder blogger.com ist zu doof, als daß man XML-Dateien hier vernünftig einfügen kann, ohne daß es umformatiert wird.

Nokogiri ist ein Gem für die Programmiersprache Ruby. Um damit XML-Dateien zu verarbeiten, geht man folgendermaßen vor.

Angenommen, wir haben folgende XML-Datei


<?xml version="1.0" encoding="ISO-8859-1"?>

<!-- Edited by XMLSpy® -->

<CATALOG>

<CD>

<TITLE>Empire Burlesque</TITLE>

<ARTIST>Bob Dylan</ARTIST>

<COUNTRY>USA</COUNTRY>

<COMPANY>Columbia</COMPANY>

<PRICE>10.90</PRICE>

<YEAR>1985</YEAR>

</CD>

<CD>

<TITLE>Hide your heart</TITLE>

<ARTIST>Bonnie Tyler</ARTIST>

<COUNTRY>UK</COUNTRY>

<COMPANY>CBS Records</COMPANY>

<PRICE>9.90</PRICE>

<YEAR>1988</YEAR>

</CD>

<CD>

<TITLE>Greatest Hits</TITLE>

<ARTIST>Dolly Parton</ARTIST>

<COUNTRY>USA</COUNTRY>

<COMPANY>RCA</COMPANY>

<PRICE>9.90</PRICE>

<YEAR>1982</YEAR>

</CD>

</CATALOG>




Angenommen, wir möchten jetzt alle Titel erhalten, dann gehen wir folgendermaßen vor:


require 'rubygems'
require 'nokogiri'

doc = Nokogiri::XML(File.open('cd_catalog.xml'))

doc.xpath('//TITLE').each do |e|
puts e.text
end


Anstatt einer Datei kann man bei Nokogiri::XML auch eine String angeben, wenn man die XML-Dateien bereits irgendwie als String vorliegen hat:


doc = Nokogiri::XML(mein_string_mit_xml_daten)


Als Ausgabe wird Folgendes geliefert:


Empire Burlesque
Hide your heart
Greatest Hits

Mittwoch, 5. August 2009

rubyberlin.wordpress.com

Wir haben jetzt mal unter http://rubyberlin.wordpress.com/ Seiten für unsere Ruby und Ruby on Rails in Berlin Kurse eingerichtet