Реализации SAX-парсера существуют во многих языках, и ответ может зависеть от реализации. Но, по крайней мере, обычные реализации Java могут читать XML из потока и не должны загружать все это.
Вызов парсера Java SAX для разбора с URL
обычно выглядит примерно так:
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
MyHandler handler = new MyHandler();
xr.setContentHandler(handler);
xr.parse(new InputSource(sourceUrl.openStream()));
, где обработчик MyHandler
- это класс, который вы определяете, реализуя org.xml.sax.ContentHandler
(проще всего с расширением org.xml.sax.helpers.DefaultHandler
), а sourceURL
- это java.net.URL
для URL.
Конечно, все это должно быть заключено в пробный улов ...
Ваш обработчик может выдать исключение, сигнализирующее, что он достиг конца того, что вы хотите проанализировать, и, перехватив это исключение, ваша программа может завершить работу без чтения всего потока.