Chcę poznać różnicę między czterema powyższymi typami (SAXPaser, XPath, DOM, XMLPullParse) i kiedy powinniśmy użyć każdego z nich.Różnica między: analizatorem SAX, XPath, DOM, XMLPullParser
Odpowiedz
SAX analizowaniem jest najlepszy do wdrożenia niż DOM, dostrzec różnicę między tymi dwoma w następujący:
DOM
węzły są w postaci struktury drzewa Pamięć: zajmuje więcej pamięci , DOM jest preferowany tylko w przypadku małych dokumentów XML. Wolniejsze w czasie wykonywania Przechowywane jako obiekty Programowo łatwe do wdrożenia Łatwość nawigacji i użytkowania.
SAX
Sekwencja zdarzeń Nie używać pamięci preferowanego dla dużych dokumentów. Szybciej w czasie wykonywania, ze względu na wyżej wymieniony punkt. Obiekty należy tworzyć. trzeba pisać kodu do tworzenia obiektów W SAX Wstecznej nawigacji nie jest możliwe, gdyż kolejno przetwarza dokument
Więc jeśli masz bardzo duże pliki, należy użyć parsera SAX, ponieważ będzie ogień zdarzenia i uwalniając je, nic nie jest przechowywane w pamięci i przy użyciu parsera SAX nie można uzyskać dostępu do elementu w sposób losowy, nie ma odwrotu! , ale Dom umożliwia dostęp do dowolnej części pliku xml, ponieważ przechowuje cały plik/dokument w pamięci.
zobacz ten article i możesz uzyskać to, co chcesz, czytając Podsumowanie.
również sprawdzić link aby zobaczyć skuteczność różnych parsera XML
Proszę sprawdzić poniżej linków ...
http://steveliles.github.com/comparing_methods_of_xml_parsing_in_android.html
http://xjaphx.wordpress.com/2011/11/01/android-xml-adventure-compare-xml-parsers/
http://www.ibm.com/developerworks/opensource/library/x-android/index.html
http://www.developer.com/ws/android/development-tools/Android-XML-Parser-Performance-3824221-2.htm
http://www.geekinterview.com/question_details/12797
(Zgodnie z powyższym artykułem)
Zarówno SAX, jak i DOM są używane do parsowania dokumentu XML. Oba ma swoje zalety i wady i może być używany w naszym programowania w zależności od sytuacji
SAX:
- Analizuje węzeł przez węzeł
- Doesnt przechowywania XML w pamięci
- Nie możemy wstawić lub usunąć węzeł
- góry do dołu przechodzącego
DOM
- Stores cały dokument XML do pamięci przed przetworzeniem
- Zajmuje więcej pamięci
- Możemy wstawić lub usunąć węzły
- Traverse w dowolnym kierunku.
Jeśli potrzebujemy znaleźć węzeł i nie trzeba go wstawiać ani usuwać, możemy przejść z SAX, w przeciwnym razie DOM pod warunkiem, że mamy więcej pamięci.
DOM
węzły są w postaci struktury drzewa Pamięć: zajmuje więcej pamięci, DOM jest preferowany tylko w przypadku małych dokumentów XML Przechowuj cały dokument XML w pamięci przed przetwarzaniem Wolniej w czasie wykonywania Zapisano jako obiekty Programowo łatwe do wykonania nt Łatwość nawigacji i użytkowania, mogą przechodzić w dowolnym kierunku. Możemy wstawiać lub usuwać, zmieniać węzły.
SAX: użyj gdy chcesz uzyskać dostęp do pliku XML (XML nie zmieni)
Sekwencja zdarzeń To XML w pamięci przed przetworzeniem Szybszy nie używać pamięci preferowanego dla dużego sklepu documents.Doesn't w czasie wykonywania, ze względu na wyżej wymieniony punkt. Obiekty należy tworzyć. trzeba pisać kodu do tworzenia obiektów W SAX Wstecznej nawigacji nie jest możliwe, gdyż kolejno przetwarza dokument, od góry do dołu przejeżdżające Nie możemy wstawić lub usunąć węzeł
XPATH: Xpath jest przydatna, gdy trzeba tylko kilka wartości z dokumentu XML i wiesz, gdzie je znaleźć (wiesz ścieżkę data./root/item/challange/text)
XMLPullParser: szybko i wymaga mniej pamięci z Domem
Źródło: http://www.time2ask.com/ http://www.time2ask.com/Android/The-difference-among-SAX-ParserXPathDOMXMLPullParser/_2361836
- 1. Z analizatorem SAX, uzyskaj wartość atrybutu
- 2. Nieznany błąd w xpath (przy użyciu xmlpullparser)
- 3. analizowania XML - ElementTree vs SAX i DOM
- 4. XmlPullParser pobiera węzły potomne
- 5. PHP DOM Xpath - wyszukaj nazwę klasy
- 6. Uzyskiwanie tylko pierwszy wynik zapytania DOM XPath
- 7. jaka jest różnica między drzewem DOM przeglądarki a drzewem renderowania
- 8. Jaka jest różnica między HTMLCollection a NodeList w DOM?
- 9. XmlPullParser: uzyskać tekst wewnętrzną tym znaczników XML
- 10. Jaka jest różnica między trybem enkapsulacji DOM otwartych i zamkniętych DOM?
- 11. android wezwanie ksoap xmlpullparser wyjątek
- 12. Problemy z analizatorem parsera Scala
- 13. Java SAX Parser podnosi UnknownHostException
- 14. Monitorowanie postępu parsera Java SAX
- 15. Jaka jest zaleta korzystania z JAXP zamiast DOM/SAX bezpośrednio w Javie?
- 16. Jaka jest różnica między: przed i :: przed?
- 17. Jaka jest różnica między DOMContentLoaded i DOMContentReady?
- 18. Dlaczego definicja kropki (.) Zmieniła się między XPath 1.0 a 2.0?
- 19. Jaka jest różnica między węzłem // i potomkiem :: węzeł w ścieżce xpath?
- 20. Różnica między form_for, form_tag?
- 21. Różnica między przeciążeniami Expression.Call?
- 22. Różnica między konwersji ciągów
- 23. Różnica między definicją słownika
- 24. Różnica między unwrapObservable i()
- 25. Różnica między "**/* /" i "** /"?
- 26. Różnica między dwiema tablicami
- 27. Różnica między Q.defer()() Obietnicy
- 28. Różnica między | = i^= css
- 29. Różnica między obiektem a *?
- 30. Composer.phar różnica między | i ||
zobacz moją apdated odpowiedź !! Mam nadzieję, że to pomoże –