Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 13625|Atsakyti: 0

[Šaltinis] Python įgyvendina XML failų analizę

[Kopijuoti nuorodą]
Paskelbta 2018-06-05 14:27:09 | | |
1. XML Įvadas

XML (eXtensible Markup Language) reiškia išplečiamą žymėjimo kalbą, skirtą duomenims perduoti ir saugoti, ir šiandien tapo daugelio naujų technologijų šerdimi, skirtingomis programomis įvairiose srityse. Tai neišvengiamas žiniatinklio vystymosi iki tam tikro etapo produktas, turintis pagrindines SGML savybes, paprastas HTML savybes ir daugybę naujų funkcijų, tokių kaip aiškus ir gerai struktūrizuotas.

testas. XML failas

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

Išsamų XML įvadą rasite:http://www.w3school.com.cn/xmldom/dom_nodetype.asp

2. XML dokumentų analizė

Yra trys įprasti python XML analizės metodai: vienas yra xml.dom.* modulis, kuris yra W3C DOM API įgyvendinimas, kuris labai tinka, jei reikia apdoroti DOM API; Antrasis yra xml.sax.* modulis, kuris yra SAX API įgyvendinimas, kuris aukoja patogumą dėl greičio ir atminties pėdsakų, o SAX yra įvykiais pagrįsta API, o tai reiškia, kad ji gali apdoroti daugybę dokumentų "ore", neįkeldama jų visiškai į atmintį; Trečiasis yra xml.etree.ElementTree modulis (sutrumpintai ET), kuris suteikia lengvą Python stiliaus API, kuri yra daug greitesnė nei DOM, ir yra daug malonių API, kurias galima naudoti, palyginti su SAX, ET ET.iterparse taip pat suteikia apdorojimo metodą "ore", nereikia įkelti viso dokumento į atmintį, o vidutinis ET našumas yra panašus į SAX. Tačiau API yra šiek tiek efektyvesnė ir paprastesnė naudoti.

2.1 xml.dom.*

Dokumento objekto modelis (DOM) yra standartinė programavimo sąsaja, kurią W3C organizacija rekomenduoja naudoti išplėstines žymėjimo kalbas. Kai DOM analizatorius analizuoja XML dokumentą, jis nuskaito visą dokumentą vienu metu, saugo visus dokumento elementus medžio struktūroje atmintyje, o tada galite naudoti įvairias DOM teikiamas funkcijas, kad perskaitytumėte ar modifikuotumėte dokumento turinį ir struktūrą arba įrašytumėte modifikuotą turinį į xml failą. Naudokite xml.dom.minidom Python, kad išanalizuotumėte xml failą.

a. Gaukite antrines žymas
b. Etiketės, skiriančios tą patį žymos pavadinimą
c. Gaukite žymos atributo vertę
d. Duomenų gavimas tarp etikečių porų

Išvesties:

2.2 xml.etree.ElementTree

"ElementTree" gimė tvarkyti XML, o Python standartinėje bibliotekoje yra du įgyvendinimai: vienas yra grynas Python įgyvendinimas, pvz., xml.etree.ElementTree, o kitas yra greitesnis xml.etree.cElementTree. Pastaba: Pabandykite naudoti C kalbą, kad ją įgyvendintumėte, nes ji yra greitesnė ir sunaudoja mažiau atminties.

a. Pereikite kitą šakninio mazgo sluoksnį
b. Apatinio indekso prieiga prie atskirų žymų, atributų ir teksto
c. Raskite nurodytą žymą šaknyje
d. XML failų perėjimas
e. Modifikuokite XML failą

Išvesties:

Pridedama:

2.3 xml.sakso.*

SAX yra įvykiais pagrįsta API, kuri naudoja SAX XML analizei į dvi dalis: analizatorių ir įvykių apdorojimo programą.

Analizatorius yra atsakingas už XML dokumento skaitymą ir įvykių, pvz., elemento pradžios ir elemento pabaigos įvykių, siuntimą į įvykių apdorojimo programą

Įvykių tvarkytojas yra atsakingas už reagavimą į įvykius ir perduodamų XML duomenų apdorojimą

Dažni scenarijai:

(1) Apdoroti didelius dokumentus

(2) Reikalaujama tik dalies dokumento arba iš bylos medžiagos gaunama tik konkreti informacija

(3) Noriu sukurti savo objekto modelį





Ankstesnis:Sprendimas: diegimo programa, naudojama "Visual Studio" diegimui, yra nebaigta
Kitą:VS Code kodo greito formatavimo spartieji klavišai
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com