Heim >Backend-Entwicklung >XML/RSS-Tutorial >Der effizienteste Weg, XML zu analysieren
XML wird häufig in verschiedenen Entwicklungen verwendet, und Android bildet da keine Ausnahme. Da das Lesen und Schreiben von XML eine wichtige Rolle beim Transport von Daten spielt, ist es zu einer wichtigen Fähigkeit in der Android-Entwicklung geworden. Heute stelle ich Ihnen einige gängige Methoden zum Parsen und Erstellen von XML auf der Android-Plattform vor.
In Android sind gängige XML-Parser der SAX-Parser, der DOM-Parser und der PULL-Parser. Im Folgenden gebe ich Ihnen eine detaillierte Einführung.
SAX-Parser:
SAX (Einfache API für Der XML-Parser ist ein ereignisbasierter Parser. Sein Kern ist der Ereignisverarbeitungsmodus, der hauptsächlich mit Ereignisquellen und Ereignisprozessoren arbeitet. Wenn die Ereignisquelle ein Ereignis generiert, rufen Sie die entsprechende Verarbeitungsmethode des Ereignisprozessors auf, und ein Ereignis kann verarbeitet werden. Wenn die Ereignisquelle eine bestimmte Methode im Ereignishandler aufruft, muss sie auch die Statusinformationen des entsprechenden Ereignisses an den Ereignishandler übergeben, damit der Ereignishandler sein eigenes Verhalten basierend auf den bereitgestellten Ereignisinformationen entscheiden kann.
Der Vorteil des SAX-Parsers besteht darin, dass er eine hohe Parsing-Geschwindigkeit hat und weniger Speicher beansprucht. Perfekt für den Einsatz in Android-Mobilgeräten.
DOM-Parser:
DOM ist eine Sammlung von Knoten oder Informationsfragmenten, die auf einer Baumstruktur basieren und Entwicklern die Verwendung von DOM ermöglichen Die API durchläuft den XML-Baum und ruft die erforderlichen Daten ab. Die Analyse dieser Struktur erfordert normalerweise das Laden des gesamten Dokuments und den Aufbau einer Baumstruktur, bevor Knoteninformationen abgerufen und aktualisiert werden können.
Da DOM in einer Baumstruktur im Speicher gespeichert wird, ist die Abruf- und Aktualisierungseffizienz höher. Bei besonders großen Dokumenten ist das Parsen und Laden des gesamten Dokuments jedoch ressourcenintensiv.
PULL-Parser:
PULL-Parser funktioniert ähnlich wie SAX, beide sind ereignisbasiert. Der Unterschied besteht darin, dass wir während des PULL-Parsing-Prozesses die generierten Ereignisse selbst abrufen und dann entsprechende Vorgänge ausführen müssen, im Gegensatz zu SAX, wo der Prozessor ein Ereignis auslöst und unseren Code ausführt. Der PULL-Parser ist klein und leicht, hat eine schnelle Parsing-Geschwindigkeit, ist einfach und benutzerfreundlich und eignet sich sehr gut für die Verwendung auf Android-Mobilgeräten. Der PULL-Parser wird auch intern im Android-System beim Parsen verschiedener XML-Dateien verwendet.
In Android ist die erste Wahl natürlich der Pull-Parser. Der PULL-Parser ist klein und leicht, hat eine schnelle Parsing-Geschwindigkeit, ist einfach und benutzerfreundlich und eignet sich sehr gut für die Verwendung in Android-Mobilgeräten. Das Android-System verwendet den PULL-Parser auch beim Parsen verschiedener XML-Dateien Pull-Parsing-Technologie. Die Pull-Parsing-Technologie ist eine von Dritten entwickelte Open-Source-Technologie und kann auch auf die JavaSE-Entwicklung angewendet werden.
PULL funktioniert:
XML pull stellt ein Startelement und ein Endelement bereit. Wenn ein Element startet, können Sie den Parser aufrufen. nextText extrahiert alle Zeichendaten aus dem XML-Dokument. Wenn ein Dokument bis zum Ende analysiert wird, wird automatisch das EndDocument-Ereignis generiert.
Häufig verwendete XML-Pull-Schnittstellen und -Klassen:
XmlPullParser: Dieser Parser ist eine Schnittstelle zum Parsen von Funktionen, die in org.xmlpull.v1 definiert sind.
XmlSerializer: Es handelt sich um eine Schnittstelle, die die Reihenfolge von XML-Informationssätzen definiert.
XmlPullParserFactory: Diese Klasse wird zum Erstellen von XML in der XMPULL V1-API verwendet Pull-Parser.
XmlPullParserException: Löst einen einzelnen Fehler im Zusammenhang mit dem XML-Pull-Parser aus.
Der PULL-Parser funktioniert ähnlich wie SAX, beide sind ereignisbasiert.
Der Unterschied besteht darin, dass während des PULL-Parsing-Prozesses Zahlen zurückgegeben werden und wir die generierten Ereignisse selbst abrufen und dann entsprechende Vorgänge ausführen müssen, im Gegensatz zu SAX, wo der Prozessor ein Ereignis auslöst und unseren Code ausführt:
Lesen Sie die XML-Deklaration und geben Sie START_DOCUMENT zurück. Ende und geben Sie END_DOCUMENT zurück ; Start-Tag gibt START_TAG zurück; End-Tag gibt END_TAG zurück;
Machen Sie abschließend einen Vergleich und eine Zusammenfassung dieser drei Parsing-Technologien:
Da die Geräteressourcen relativ wertvoll und der Speicher begrenzt sind, müssen wir die geeignete XML-Parsing-Technologie auswählen , was zur Verbesserung der Zugriffsgeschwindigkeit beiträgt.
Wenn DOM eine XML-Datei verarbeitet, analysiert es die XML-Datei in eine Baumstruktur und legt sie zur Verarbeitung im Speicher ab. Wenn die XML-Datei klein ist, können wir DOM wählen, da es einfach und intuitiv ist.
SAX verwendet Ereignisse als Modus zum Parsen von XML-Dateien. Es wandelt XML-Dateien in eine Reihe von Ereignissen um, und verschiedene Ereignishandler entscheiden, wie sie verarbeitet werden. Wenn die XML-Datei groß ist, ist es sinnvoller, die SAX-Technologie zu wählen. Obwohl die Codegröße etwas groß ist, ist es nicht erforderlich, alle XML-Dateien in den Speicher zu laden. Dies ist bei begrenztem Android-Speicher effizienter und Android bietet eine traditionelle Möglichkeit zur Verwendung von SAX sowie einen praktischen SAX-Wrapper. Die Verwendung von XML-Klassen ist einfacher als die Verwendung von SAX.
XML Pull-Parsing hört nicht wie SAX-Parsing auf das Ende des Elements, sondern führt den Großteil der Verarbeitung am Anfang durch. Dies ist für das frühzeitige Lesen von XML-Dateien von Vorteil und kann die Analysezeit erheblich verkürzen. Diese Optimierung ist besonders wichtig für mobile Geräte mit langsamen Verbindungsgeschwindigkeiten. Für XML-Dokumente, die groß sind, aber nur einen Teil des Dokuments benötigen, XML Pull-Parser sind ein effizienterer Ansatz.
Das Obige ist der Inhalt der effizientesten XML-Analysemethode. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).