I hate to bring this suffering upon you but for excellent performance you should definitely just use Erlang’s :xmerl. It’s not exactly easy to work with, ask away if you get stuck.
It does support streaming, both reading and writing, so RAM will not be a problem.


















