This is a first step in being able to make all my planets configurable from anywhere. The following ruby script parses the opml file specified on the command line and generates a comma separated file with XML feed URL and feed title. In case of nested outline elements, it just picks the elements which actually have xmlUrl attribute (this will flatten the opml hierarchy which is used by google reader - for implementing labels and bloglines - for implementing folders)
require 'csv' require "rexml/document" include REXML if ARGV.length >=1 fname = ARGV[0] else fname = "opml.xml" end doc = Document.new File.new(fname) CSV.open('csvfile.csv', 'w') do |writer| doc.elements.each("//outline[@type='rss']") {|element| writer < < [element.attribute("xmlUrl").value, element.attribute("text").value] } end