Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 13625|Antwoord: 0

[Bron] Python implementeert XML-bestandsparsing

[Link kopiëren]
Geplaatst op 05-06-2018 14:27:09 | | |
1. XML Inleiding

XML (eXtensible Markup Language) verwijst naar een uitbreidbare opmaaktaal, ontworpen om data te verzenden en op te slaan, en is tegenwoordig de kern van veel nieuwe technologieën geworden, met verschillende toepassingen in verschillende vakgebieden. Het is een onvermijdelijk product van de ontwikkeling van het web tot een bepaald stadium, dat de kernkenmerken van SGML heeft, de eenvoudige kenmerken van HTML, en veel nieuwe functies zoals duidelijk en goed gestructureerd.

test. XML-bestand

<?xml version="1.0" encoding="utf-8"?>
<catalog>
    <maxid>4</maxid>
    <login gebruikersnaam="pytest" passwd='123456'>
        <caption>Python</caption>
        <item id="4">
            <caption>Test</caption>
        </item>
    </login>
    <item id="2">
        <caption>Zope</caption>
    </item>
</catalog>

Voor een gedetailleerde introductie tot XML, zie alstublieft:http://www.w3school.com.cn/xmldom/dom_nodetype.asp

2. XML documentparsing

Er zijn drie gangbare methoden voor Python om XML te parsen: één is de xml.dom.*-module, een implementatie van de W3C DOM API, die zeer geschikt is als je de DOM API moet verwerken; De tweede is de xml.sax.*-module, een implementatie van de SAX API, die gemak opoffert voor snelheid en geheugen, en SAX is een event-based API, wat betekent dat het een enorm aantal documenten "in de lucht" kan verwerken zonder deze volledig in het geheugen te hoeven laden; De derde is de xml.etree.ElementTree-module (kortweg ET), die een lichtgewicht Python-achtige API biedt, die veel sneller is dan de DOM, en er zijn veel prettige API's die gebruikt kunnen worden, vergeleken met SAX, ET's ET.iterparse biedt ook een "in de lucht" verwerkingsmethode, het is niet nodig om het hele document in het geheugen te laden, en de gemiddelde prestaties van ET zijn vergelijkbaar met SAX. De API is echter iets efficiënter en gebruiksvriendelijker.

2.1 xml.dom.*

Het Document Object Model (DOM) is een standaard programmeerinterface die door de W3C-organisatie wordt aanbevolen om uitbreidbare opmaaktalen te verwerken. Wanneer een DOM-parser een XML-document parsert, leest hij het hele document tegelijk, slaat alle elementen in het document op in een boomstructuur in het geheugen, en vervolgens kun je verschillende functies van de DOM gebruiken om de inhoud en structuur van het document te lezen of te wijzigen, of de aangepaste inhoud naar het xml-bestand te schrijven. Gebruik xml.dom.minidom in Python om het xml-bestand te parsen.

a. Subtags ophalen
b. Labels die dezelfde tagnaam onderscheiden
c. Haal de tag-attribuutwaarde
d. Gegevens verkrijgen tussen labelparen

Uitvoer:

2.2 xml.etree.ElementTree

ElementTree is geboren om XML te verwerken, en er zijn twee implementaties in de Python-standaardbibliotheek: één is een pure Python-implementatie, zoals xml.etree.ElementTree, en de andere is een snellere xml.etree.cElementTree. Opmerking: Probeer de C-taal te gebruiken om het te implementeren, omdat het sneller is en minder geheugen verbruikt.

a. Doorkruis de volgende laag van de wortelknoop
b. Subscripttoegang tot individuele tags, attributen en tekst
c. Zoek de gespecificeerde tag onder root
d. Het doorlopen van XML-bestanden
e. Het XML-bestand wijzigen

Uitvoer:

Bijgevoegd:

2.3 xml.sax.*

SAX is een event-driven API die SAX gebruikt om XML in twee delen te parsen: de parser en de event handler.

De parser is verantwoordelijk voor het lezen van het XML-document en het verzenden van gebeurtenissen naar de event handler, zoals element start en element end events

De event processor is verantwoordelijk voor het reageren op de gebeurtenissen en het verwerken van de doorgegeven XML-gegevens

Veelvoorkomende scenario's:

(1) Grote documenten verwerken

(2) Slechts een deel van het document is vereist, of specifieke informatie wordt alleen uit het dossier gehaald

(3) Ik wil mijn eigen objectmodel bouwen





Vorig:Oplossing: De installer die is gebruikt om Visual Studio te installeren is onvolledig
Volgend:VS Code-code snelle opmaaksnelkoppelingen
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com