Heim >Backend-Entwicklung >XML/RSS-Tutorial >Codedetails zum Generieren und Parsen von Daten im XML-Format
1. Generierung und Analyse von Daten im Format 🎜>
werden über das Netzwerk übertragen. Das XML-Format wird in Form von Haftnotizen geschrieben und angezeigt, was auf einen Blick klar und leicht zu lesen und zu identifizieren ist, wie unten gezeigt:Generierung von XML
<xml 头> <student> <name>张三</name> <number>110001</number> <sex>male</sex> </student>Wenn Sie Java-Code verwenden, um ein solches String-Format zu implementieren, können Sie StringBuilder für die Assemblierung verwenden: StringBuilder sb = new StringBuilder();
Obwohl der obige Code auch XML generieren kann
//数据保存到文件 sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); sb.append("<student>"); sb.append("<name>"); sb.append(name); sb.append("</name>"); sb.append("<number>"); sb.append(number); sb.append("</number>"); sb.append("<sex>"); sb.append(sex); sb.append("</sex>"); sb.append("</student>");Dateien, aber Sonderzeichen können nicht verarbeitet werden. Wenn der Textnachrichteninhalt beispielsweise das „5f557f62ae7ac7a14e0b1cb564790dfc“ enthält, kann der XML-Parser die korrekte Analyse nicht abschließen. Voraussetzung für die Nutzung ist daher, dass Sie darauf achten, dass der Dateninhalt keine Sonderzeichen enthält. Android stellt uns eine API speziell zum Generieren von XML-Daten zur Verfügung: Die API hat intern die Verarbeitung von Sonderzeichen implementiert. Der Code lautet wie folgt: >
XML-Parsing
1. DOM-Analyse
try {// 采用Android的api面向对象的生成xml文件. // 1.得到xml文件的序列化器 XmlSerializer serializer = Xml.newSerializer(); // 2.指定序列化器的一些初始参数 File file = new File(getFilesDir(), name +".xml"); FileOutputStream os = new FileOutputStream(file);serializer.setOutput(os, "utf-8"); // 3.写xml文件. serializer.startDocument("utf-8", true);//写开头serializer.startTag(null, "student");//开始标签 serializer.startTag(null,"name"); serializer.text(name);//文本标签 serializer.endTag(null,"name");//结束标签 serializer.startTag(null,"number"); serializer.text(number); serializer.endTag(null,"number"); serializer.startTag(null,"sex"); serializer.text(sex); serializer.endTag(null,"sex"); serializer.endTag(null,"student"); serializer.endDocument();//写结尾 os.close(); Toast.makeText(this,"保存数据成功", 0).show(); } catch (Exception e) {e.printStackTrace(); Toast.makeText(this,"保存数据失败", 0).show(); }ist eine objektbasierte API, die den gesamten Inhalt der XML-Datei in Form eines Dokumentbaums im Speicher speichert und es dann ermöglicht, XML mit DOMAPI zu durchlaufen Baum und rufen Sie die erforderlichen Daten ab, sodass die Datei in Form von Knoten entsprechend der Struktur des Baums bearbeitet werden kann. Da DOM die gesamte XML-Datei in Form eines Dokumentbaums im Speicher speichern muss, was viel Speicher verbraucht, macht es mir nichts aus, diese Methode zum Parsen unter Android zu verwenden. 2. SAX-Parsing scannt das XML-Dokument Zeile für Zeile, löst den Parsing-Prozessor aus, wenn ein Tag gefunden wird, und verwendet die Ereignisverarbeitung, um das XML zu analysieren. Es kann XML beim Lesen des Dokuments verarbeiten und muss nicht warten, bis das Dokument geladen ist. Es muss also nicht das gesamte Dokument in den Speicher geladen werden, sodass es kein Problem mit der Speicherbelegung gibt sehr großes XML. Allerdings kann das SAX-Parsing nur zum Lesen von XML-Daten verwendet werden und nicht hinzugefügt, gelöscht oder geändert werden. 3. Das PULL-Parsing ähnelt dem SAX-Parsing und basiert ebenfalls auf der Ereignisverarbeitung. Der PULL-Parser ist ein Open-Source-Java-Projekt, das sowohl in Android-Anwendungen als auch in JavaEE-Programmen verwendet werden kann. Android hat einen PULL-Parser integriert, daher ist die am häufigsten verwendete Analysemethode in Android die PULL-Analyse. Vergleich zwischen SAX- und PULL-Parsing: Der Pull-Parser funktioniert ähnlich wie der SAX-Parser, die beide ereignisgesteuert sind. Es stellt ähnliche Ereignisse bereit, z. B. Startelement- und Endelementereignisse. Verwenden Sie parser.next(), um das nächste Element einzugeben und das entsprechende Ereignis auszulösen. Ereignisse werden als numerische Codes gesendet, sodass Sie einen Schalter verwenden können, um die gewünschten Ereignisse zu verarbeiten. Wenn die Analyse des Elements beginnt, rufen Sie die Methode parser.nextText() auf, um den Wert des nächsten Elements vom Typ Text abzurufen. Der SAX-Parser funktioniert, indem er Ereignisse automatisch zur Verarbeitung in den Ereignisprozessor schiebt, sodass Sie das aktive Ende der Ereignisverarbeitung nicht steuern können, während der Pull-Parser funktioniert, indem er Ihnen den Anwendungscode aktiv zulässt Ruft Ereignisse vom Parser ab. Da er aktiv Ereignisse abruft, kann er keine Ereignisse mehr abrufen und das Parsen beenden, nachdem die erforderlichen Bedingungen erfüllt sind. Der Code zum Parsen von XML-Dateien mit der PULL-Methode unter Android lautet wie folgt:
Das obige ist der detaillierte Inhalt vonCodedetails zum Generieren und Parsen von Daten im XML-Format. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!