|
|
Veröffentlicht am 05.06.2018 14:27:09
|
|
|

1. XML Einführung
XML (eXtensible Markup Language) bezeichnet eine erweiterbare Markup-Sprache, die zum Übertragen und Speichern von Daten entwickelt wurde und heute zum Kern vieler neuer Technologien mit unterschiedlichen Anwendungen in unterschiedlichen Bereichen geworden ist. Es ist ein unvermeidliches Produkt der Entwicklung des Webs bis zu einem bestimmten Stadium, das die Kernmerkmale von SGML, die einfachen Eigenschaften von HTML und viele neue Funktionen wie klar und gut strukturiert aufweist.
Test. XML-Datei
<?xml version="1.0" coding="utf-8"?> <catalog> <maxid>4</maxid> <login-Benutzername="pytest" passwd='123456'> <caption>Python</caption> <item id="4"> <caption>Test</caption> </item> </login> <Item-id="2"> <caption>Zope</caption> </item> </catalog> Für eine ausführliche Einführung in XML siehe bitte:http://www.w3school.com.cn/xmldom/dom_nodetype.asp
2. XML Dokumentenparsing
Es gibt drei gängige Methoden, mit denen Python XML analysiert: Eine davon ist das xml.dom.*-Modul, eine Implementierung der W3C-DOM-API, die sehr geeignet ist, wenn man die DOM-API verarbeiten muss; Das zweite ist das xml.sax.*-Modul, eine Implementierung der SAX-API, die Bequemlichkeit zugunsten von Geschwindigkeit und Speicheraufwand opfert, und SAX ist eine ereignisbasierte API, was bedeutet, dass es eine riesige Anzahl von Dokumenten "in der Luft" verarbeiten kann, ohne sie komplett in den Speicher laden zu müssen; Das dritte ist das xml.etree.ElementTree-Modul (kurz ET), das eine leichte Python-ähnliche API bietet, die viel schneller ist als der DOM, und es gibt viele angenehme APIs, die verwendet werden können, im Vergleich zu SAX, ETs ET.iterparse bietet außerdem eine "in der Luft"-Verarbeitungsmethode, es ist nicht nötig, das gesamte Dokument in den Speicher zu laden, und die durchschnittliche Leistung von ET ist ähnlich wie bei SAX. Die API ist jedoch etwas effizienter und einfach zu bedienen.
2.1 xml.dom.*
Das Document Object Model (DOM) ist eine standardisierte Programmierschnittstelle, die von der W3C-Organisation empfohlen wird, um erweiterbare Markup-Sprachen zu handhaben. Wenn ein DOM-Parser ein XML-Dokument parst, liest er das gesamte Dokument auf einmal, speichert alle Elemente des Dokuments in einer Baumstruktur im Speicher, und dann kann man verschiedene vom DOM bereitgestellte Funktionen verwenden, um den Inhalt und die Struktur des Dokuments zu lesen oder zu ändern oder den bearbeiteten Inhalt in die XML-Datei zu schreiben. Verwenden Sie xml.dom.minidom in Python, um die XML-Datei zu analysieren.
a. Subtags erhalten b. Bezeichnungen, die denselben Tag-Namen unterscheiden c. Erhalten Sie den Tag-Attributwert d. Daten zwischen Labelpaaren abholen
Ausgabe:
2.2 xml.etree.ElementTree
ElementTree wurde entwickelt, um XML zu handhaben, und es gibt zwei Implementierungen in der Python-Standardbibliothek: Eine ist eine reine Python-Implementierung, wie xml.etree.ElementTree, und die andere ist eine schnellere xml.etree.cElementTree. Hinweis: Versuche, die C-Sprache zur Implementierung zu verwenden, da sie schneller ist und weniger Speicher verbraucht.
a. Durchqueren Sie die nächste Schicht des Wurzelknotens b. Index Zugriff auf einzelne Tags, Attribute und Text c. Finde das angegebene Tag unter Root d. Durchquerung von XML-Dateien e. Die XML-Datei modifizieren
Ausgabe:
Angehängt:
2.3 xml.sax.*
SAX ist eine ereignisgesteuerte API, die SAX verwendet, um XML in zwei Teilen zu parsen: dem Parser und dem Ereignishandler.
Der Parser ist dafür verantwortlich, das XML-Dokument zu lesen und Ereignisse an den Ereignishandler zu senden, wie zum Beispiel Elementstart- und Element-Endereignisse
Der Ereignisprozessor ist verantwortlich für die Reaktion auf die Ereignisse und die Verarbeitung der übermittelten XML-Daten
Häufige Szenarien:
(1) Bearbeitung großer Dokumente
(2) Nur ein Teil des Dokuments ist erforderlich oder spezifische Informationen werden nur aus der Akte gewonnen
(3) Ich möchte mein eigenes Objektmodell erstellen
|
Vorhergehend:Lösung: Der Installer, der zur Installation von Visual Studio verwendet wurde, ist unvollständigNächster:VS Code-Schnellformatierungs-Shortcuts
|