části XML dokumentu čteme sekvenčně podle svých potřeb
přehlednější kód než v případě použití push-parserů (SAX)
implementace – XmlReader v .Net, StAX v Javě, …
// vytvoření parseru XMLInputFactory f = XMLInputFactory.newInstance(); XMLStreamReader r = f.createXMLStreamReader("faktura.xml"); // zpracování celého dokumentu XML while (r.hasNext()) { // přečtení dalšího prvku XML r.next(); // zpracováváme jen elementy cena if (r.getEventType() == XMLStreamConstants.START_ELEMENT && r.getLocalName().equals("cena")) { // přečtení sazby DPH double sazbaDPH = Double.parseDouble(r.getAttributeValue(null, "dph")) / 100; // přečtení obsahu elementu cena double castka = Double.parseDouble(r.getElementText()); // provedení výpočtu suma += castka; sumaDPH += castka * sazbaDPH; } }