# File rubilicious.rb, line 603
  def to_xbel(tag = nil)
    ret = [ "<?xml version='1.0' encoding='utf-8'?>",
            "<xbel version='1.0' added='#{Time::now.to_iso8601}'>",
            # "<xbel version='1.0'>",
            "  <title>#{@user}'s del.icio.us bookmarks</title>" ]
  
    tags = all(tag).inject({}) do |tags, bm|
      if bm['tags'] && bm['tags'].size > 0
        bm['tags'].sort!
        # TODO: alias support
        bm['tags'].each { |tag| tags[tag] ||= []; tags[tag] << bm }
      else 
        tags['unsorted'] ||= []
        tags['unsorted'] << bm
      end

      tags
    end
    
    tags.keys.sort.each do |tag|
      ary = tags[tag]
      ret <<  [ 
        "  <folder id='#{tag}' added='#{Time.now.to_iso8601}'>",
        # "  <folder id='#{tag}'>",
        "    <title>#{tag.capitalize}</title>",

        ary.sort { |a, b| a['description'] <=> b['description'] }.map do |bm|
          href, bm_id = bm['href'].uri_escape, "#{tag}-#{bm['hash']}", 
          time = bm['time'].to_iso8601
          title = bm['description'] ? bm['description'].xml_escape : ''
          desc = bm['extended'] ? bm['extended'].xml_escape : ''

          [ "    <bookmark href='#{href}' id='#{bm_id}' added='#{time}'>",
          # [ "    <bookmark href='#{href}' id='#{bm_id}'>",
            "      <title>#{title}</title>",
            "      <desc>#{desc}</desc>",
            "    </bookmark>" ,
          ].join("\n")
        end.join("\n"),

        '  </folder>',
      ].join("\n")
    end

    ret << '</xbel>'
    ret.join("\n")
  end