Import project from XML06.zip to Eclipse.
Program ...lab06.SAXFormatter (making use of FormattingHandler) prints out a given document (element tags and text nodes only, we do not handle special characters, etc.).
String.trim Printing also comments is not so obvious in this case. We would have to use LexicalHandler.
(Przykładowy dokument i tak jest po polsku...)
W pakiecie ...lab06.sklep znajdziecie program ZnajdzMaxCene oraz niedokończoną klasę MaxCenaHandler,
cena.W pakiecie ...lab06.sklep znajdziecie program Filtruj
oraz niedokońcozną klasę FiltrKategorii.
MaxCenaHandler oraz FiltrKategorii do zbudowania programu, który znajduje maksymalną cenę towaru w podanej kategorii. Wystarczy połączyć parser, filtr i handler w jeden łańcuszek i uruchomić parsowanie. W razie wątpliwości zobacz program SaxFiltry w przykładach.Streaming API fo XML offers more intuitive control flow than SAX.
It also directly supports writing documents – see XMLStreamWriter and XMLEventWriter classes.
Tworzenie Readara i Writera - może się przydać do ostatniego punktu poniższego zadania.
XMLInputFactory ifa = XMLInputFactory.newInstance(); XMLEventReader reader = ifa.createXMLEventReader(new FileInputStream(wej)); XMLOutputFactory ofa = XMLOutputFactory.newInstance(); XMLEventWriter writer = ofa.createXMLEventWriter(new FileOutputStream(wyj)); XMLEventFactory ef = XMLEventFactory.newInstance();
W pakiecie ...lab06.sklep znajdziecie program SredniaCena_Stax
oraz klasę FiltrKategorii_Stax.
Uwaga, działają one na wersji dokumentów z przestrzeniami nazw (sklep_ns.xml).
XMLEventWriter, aby stworzyć program, który przepisuje plik zostawiając tylko towary z wybranej kategorii.
Niewykluczone, że filtr trzeba jeszcze poprawić/uzupełnić