Thanks for the great responses! Just for clarification though: tag_start identifies an element like "gene" ala def tag_start(name, attrib) if name=="gene" do something here end end So tag_end is then used if I want to puts everything that was done with the element and its children like storing some values in an array or something? /Marc -- Posted via http://www.ruby-forum.com/.