From: Gary Shea Date: 2005-08-31T03:56:34+09:00 Subject: SAX-based XPath I'm posting this in hope of getting some API suggestions. I'm building a native stream-based Ruby XPath processor (or whatever it would be called) in order to parse some gigabyte-scale XML files at work. It will accept multiple XPath expressions and output events (SAX for now) matching the union of the XPath expressions. It currently only works with absolute, non-wildcarded, predicate-less default-axis XPath expressions: filter = XmlFilter::XPathFilter.new filter.listener = XmlFilter::RecordingListener.new filter.xpath = '/a/b/c' parser = REXML::Parsers::SAX2Parser.new(File.open('some_file_path.xml')) parser.listen = filter parser.parse This interface needs to be extended a little to work with multiple XPath expressions, maybe: filter.xpath = ['/a/b/c', '/d/e/f'] Any suggestions for a more Ruby-esque way to do it? Gary