Poszukałem trochę czasu na ten temat i znalazłem również wyniki, o których wspominam na końcu postu. Czy ktoś może mi pomóc precyzyjnie odpowiedzieć na te trzy pytania w przypadkach wymienionych poniżej?Groovy XmlSlurper vs XmlParser
, których stosowanie gabloty pomocą XmlSluper bardziej sensowne niż XMLParser i vice-versa (z punktu widzenia łatwości obsługi interfejsu API/składni)?
Który z nich jest bardziej wydajny? (wygląda jak Slurper)
, który z nich szybciej przetwarza xml?
Przypadek a. kiedy muszę przeczytać prawie wszystkie węzły w xml?
Przypadek b. kiedy muszę przeczytać tylko kilka węzłów (np. używając wyrażenia gpath)?
Przypadek c. kiedy muszę zaktualizować/transformować xml?
pod warunkiem, że dokument xml nie jest banalny (z poziomem głębokości i wielkości xml).
Resources:
http://www.tutkiun.com/2009/10/xmlparser-and-xmlslurper.html Zjednoczone:
różnica między XMLParser i XMLSlurper:
istnieją podobieństwa między XMLParser i XMLSlurper kiedy wykorzystywane do prostego odczytu, ale kiedy używamy ich do zaawansowany odczyt i gdy przetwarzanie dokumentów XML w innych formatach różni się pomiedzy dwa.
XMLParser przechowuje wyniki pośrednie po analizie dokumentów. Ale na z drugiej strony,
XMLSlurper nie przechowuje wewnętrznych wyników po przetworzeniu dokumentów XML .
Prawdziwe, fundamentalne różnice stają się oczywiste podczas przetwarzania przeanalizowanych informacji . To jest wtedy, gdy przetwarzanie z bezpośrednimi danymi lokalnymi manipuluje i przetwarza w scenariuszu transmisji strumieniowej.
http://groovy.dzone.com/news/john-wilson-groovy-and-xml
Groovy doc (XmlParser, XmlSlurper) i strona Groovy wyjaśnia je dobrze (here i here), ale nie robi wielką pracę w wyjaśnianiu ww pytanie.
Niesamowite wyjaśnienie aktualizacji w odniesieniu do slurper, dzięki. Rozwiązało to mój problem podczas próby usunięcia rekursywnie węzłów, gdy "pusty" w slurper, co oczywiście nie będzie działać. – sandos