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
This interface needs to be extended a little to work with multiple XPath
filter.xpath = ['/a/b/c', '/d/e/f']
Any suggestions for a more Ruby-esque way to do it?