Ruby: lendo arquivos XML com REXML

O código abaixo acessa um XML remoto e usa o parser REXML para manipular os elementos do arquivo.

require "rexml/document"
require "open-uri"
include REXML

uri = "http://del.icio.us/rss/lupeke"
source = open(uri).read
xml = Document.new(source).root

puts "Parsing: #{xml.elements["//channel/title"].text} \n\n”

xml.elements.each("//item") { |item|
puts "#{item.elements["title"].text} \n\n”
puts “#{item.elements["description"].text} \n\n”
}

Este é apenas um exemplo. Não trata exceções e só suporta o formato RSS; o objetivo é apenas demonstrar conceitos básicos e a facililidade de uso do REXML.

Testando o script

Copie o código para sua máquina e use o interpretador para executá-lo:

$ruby /caminho/para/o/script.rb

O resultado deverá listar as informações (título e descrição) contidas no RSS.

Referência

http://www.ruby-doc.org/stdlib/libdoc/rexml/rdoc/
http://www.ruby-doc.org/stdlib/libdoc/open-uri/rdoc/

2 Responses to “Ruby: lendo arquivos XML com REXML”


  • Olá amigo…

    Fiz o teste executando o script acima e funcinou sem problema, minha unica dúvida é que o script retorna apenas o ultimo item do rss.
    Já li e re-li a API do REXML mais não consigo achar algo que me retorne todos os item do arquivo XML.

    Se você souber e puder me responder ficarei grato.

    Até mais.

  • Otima Dica,

    Parabéns…testei aqui de rolou sem problemas, ja me deu algumas ideias para incrementar

    valeu

Leave a Reply