Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 13625|Odgovoriti: 0

[Vir] Python implementira razčlenjevanje XML datotek

[Kopiraj povezavo]
Objavljeno na 5. 06. 2018 14:27:09 | | |
1. XML Uvod

XML (eXtensible Markup Language) se nanaša na razširljiv označevalni jezik, zasnovan za prenos in shranjevanje podatkov, in je postal jedro mnogih novih tehnologij danes, z različnimi aplikacijami na različnih področjih. Gre za neizogiben produkt razvoja spleta do določene stopnje, ki ima osnovne značilnosti SGML, preproste značilnosti HTML in številne nove funkcije, kot sta jasnost in dobro strukturiranost.

preizkus. XML datoteka

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

Za podroben uvod v XML si oglejte:http://www.w3school.com.cn/xmldom/dom_nodetype.asp

2. XML razčlenjevanje dokumentov

Obstajajo tri pogoste metode za razčlenjevanje XML v Pythonu: ena je xml.dom.* modul, ki je implementacija W3C DOM API, kar je zelo primerno, če morate obdelati DOM API; Drugi je xml.sax.* modul, ki je implementacija SAX API-ja, ki žrtvuje priročnost v korist hitrosti in pomnilniške porabe, SAX pa je API, ki temelji na dogodkih, kar pomeni, da lahko obdela ogromno število dokumentov "v zraku" brez popolnega nalaganja v pomnilnik; Tretji je xml.etree.ElementTree modul (ET na kratko), ki zagotavlja lahek API v slogu Pythona, ki je veliko hitrejši od DOM, poleg tega pa je na voljo veliko prijetnih API-jev, ki jih je mogoče uporabljati v primerjavi s SAX-om, ET-jev ET.iterparse prav tako omogoča obdelavo "v zraku", ni potrebe po nalaganju celotnega dokumenta v pomnilnik, povprečna zmogljivost ET pa je podobna kot pri SAX-u. Vendar je API nekoliko bolj učinkovit in enostaven za uporabo.

2.1 xml.dom.*

Model dokumentnih objektov (DOM) je standardni programski vmesnik, ki ga priporoča organizacija W3C za obvladovanje razširljivih označevalnih jezikov. Ko DOM parser razčlenjuje XML dokument, prebere celoten dokument naenkrat, shrani vse elemente v drevesni strukturi v pomnilniku, nato pa lahko uporabite različne funkcije, ki jih zagotavlja DOM, za branje ali spreminjanje vsebine in strukture dokumenta ali za zapisovanje spremenjene vsebine v xml datoteko. Uporabite xml.dom.minidom v Pythonu za razčlenitev xml datoteke.

a. Pridobite podoznake
b. Oznake, ki razlikujejo isto ime oznake
c. Pridobi vrednost atributa oznake
d. Pridobi podatke med pari nalepk

Izhod:

2.2 xml.etree.ElementTree

ElementTree je nastal za upravljanje XML, v standardni knjižnici Pythona pa sta dve implementaciji: ena je čista Python implementacija, kot je xml.etree.ElementTree, druga pa hitrejši xml.etree.cElementTree. Opomba: Poskusite uporabiti jezik C za implementacijo, saj je hitrejši in porabi manj pomnilnika.

a. Prečkajte naslednjo plast korenskega vozlišča
b. Dostop po indeksu do posameznih oznak, atributov in besedila
c. Poišči določeno oznako pod korenom
d. Prečkanje XML datotek
e. Spremenite XML datoteko

Izhod:

Priloženo:

2.3 xml.sax.*

SAX je API, ki temelji na dogodkih, uporablja SAX za razčlenjevanje XML v dveh delih: parserju in obravnavalniku dogodkov.

Parser je odgovoren za branje XML dokumenta in pošiljanje dogodkov upravljavcu dogodkov, kot so začetek elementa in konec elementa

Procesor dogodkov je odgovoren za odzivanje na dogodke in obdelavo posredovanih XML podatkov

Pogosti scenariji:

(1) Obdelava velikih dokumentov

(2) Potreben je le del dokumenta ali pa se specifične informacije pridobijo le iz datoteke

(3) Želim zgraditi svoj lasten objektni model





Prejšnji:Rešitev: Namestitveni program, ki se uporablja za namestitev Visual Studia, ni popoln
Naslednji:Hitri bližnjice za oblikovanje VS Code kode
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com