Split International Aid Transparency Initiative (IATI) XML activity files.
Parsing very-large XML files into an in-memory DOM can cause a memory-usage explosion that shuts down even a large server. This streaming library is optimised to handle very large IATI activity reports and split them into smaller XML documents that a system can import individually. It can load the IATI activity reports either from a local file or direct download from a (public) URL. Memory usage is relatively constant regardless of the source-file size, so it is entirely reasonable to process 100+ MB XML files, even on a resource-constrained system. Output goes into a user-specified directory.