Mam następujący problem:analizowania składni dokumentów XML w Javie duży
Mam plik XML (około 1GB), i iteracyjne w górę iw dół (czyli nie sekwencyjna, jedno po drugim) w celu aby uzyskać wymagane dane i wykonać na nich pewne operacje. Początkowo korzystałem z pakietu DOM Java, ale oczywiście podczas analizowania pliku XML JVM osiąga maksymalny obszar sterty i jest zatrzymywany.
Aby rozwiązać ten problem, jednym z rozwiązań, które wymyśliłem, było znalezienie innego parsera, który iteruje każdy element w pliku XML, a następnie zapisuję jego zawartość w tymczasowej bazie danych SQLite na dysku twardym. Dlatego w ten sposób sterty JVM nie są przekraczane, a gdy wszystkie dane zostaną wypełnione, ignoruję plik XML i kontynuuję operacje na tymczasowej bazie danych SQLite.
Czy istnieje inny sposób, w jaki mogę rozwiązać mój problem?
użyj jaxb do parsowania xml – Biswajit
Tak jak inni mówili, że musisz użyć parsera SAX zamiast parsera DOM, zrobi dokładnie to, czego potrzebujesz. Przeczytaj to: http://stackoverflow.com/questions/6828703/difference-about-sax-and-dom – cowls
Jeśli nie możesz zatrzymać całego drzewa DOM, musisz znaleźć sposób na wykonanie przetwarzania sekwencyjnie. Czy to jest możliwe? Czy możesz pokazać XSLT, który robi to, czego potrzebujesz? –