čá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;
}
}