github.com/prewk/xml-string-streamer ↗
Stream large XML files with low memory consumption.
Open this visualization on its own page →
Contributors
9
Lines of Code
234
From
2014-04-26
To
2020-12-14
About prewk/xml-string-streamer
xml-string-streamer is a PHP library designed to parse extremely large XML files while using minimal memory. It allows developers to process XML documents that are too big to load into memory at once, making it useful for handling multi-gigabyte files in production environments.
The library provides two main parsing strategies. The StringWalker parser works similarly to PHP's XmlReader, traversing the XML tree node by node and capturing elements at a specified depth. The UniqueNode parser offers faster performance by capturing everything between an element's opening and closing tags, though it has specific prerequisites about element nesting. Both parsers are configurable with options for handling XML comments, CDATA sections, and self-closing tags.
The project supports multiple input sources through different stream providers: File for reading XML files from disk, Stdin for CLI applications that receive XML through standard input, and Guzzle for streaming XML over HTTP. The library maintains backward compatibility with PHP 5.3 in older versions while supporting modern PHP 7.2 and above, making it accessible to projects across different PHP ecosystems. Installation is straightforward via Composer, and the library includes features like progress tracking callbacks and the ability to extract and access root elements during streaming.