Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 13625|Svar: 0

[Kilde] Python implementerer XML-filparsing

[Kopier link]
Opslået på 05/06/2018 14.27.09 | | |
1. XML Introduktion

XML (eXtensible Markup Language) refererer til et udvidelsesbart markupsprog, designet til at overføre og lagre data, og er blevet kernen i mange nye teknologier i dag med forskellige anvendelser inden for forskellige områder. Det er et uundgåeligt produkt af udviklingen af webben til et vist niveau, som har SGML's kerneegenskaber, HTML's enkle egenskaber og mange nye funktioner såsom klar og velstruktureret.

Test. XML-fil

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

For en detaljeret introduktion til XML, se venligst:http://www.w3school.com.cn/xmldom/dom_nodetype.asp

2. XML dokumentparsing

Der er tre almindelige metoder til at analysere XML i Python: den ene er xml.dom.*-modulet, som er en implementering af W3C DOM API'en, hvilket er meget velegnet, hvis du skal behandle DOM-API'en; Den anden er xml.sax.*-modulet, som er en implementering af SAX API'en, der ofrer bekvemmelighed for hastighed og hukommelsesforbrug, og SAX er et hændelsesbaseret API, hvilket betyder, at det kan behandle et enormt antal dokumenter "i luften" uden at skulle indlæse det helt i hukommelsen; Den tredje er xml.etree.ElementTree-modulet (ET for kort), som tilbyder et letvægts Python-lignende API, der er meget hurtigere end DOM, og der findes mange behagelige API'er, der kan bruges; sammenlignet med SAX tilbyder ET.iterparse også en "in the air"-behandlingsmetode, der er ikke behov for at indlæse hele dokumentet i hukommelsen, og den gennemsnitlige ydeevne for ET er lignende SAX. Dog er API'en lidt mere effektiv og nem at bruge.

2.1 xml.dom.*

Document Object Model (DOM) er et standard programmeringsinterface, som anbefales af W3C-organisationen til at håndtere udvidelige markup-sprog. Når en DOM-parser parser et XML-dokument, læser den hele dokumentet på én gang, gemmer alle elementerne i dokumentet i en træstruktur i hukommelsen, og derefter kan du bruge forskellige funktioner, som DOM leverer, til at læse eller ændre indholdet og strukturen i dokumentet, eller skrive det ændrede indhold til xml-filen. Brug xml.dom.minidom i Python til at parse xml-filen.

a. Få undertags
b. Mærkater, der adskiller det samme tagnavn
c. Få tag-attributværdien
d. Hent data mellem labelpar

Udgang:

2.2 xml.etree.ElementTree

ElementTree blev skabt til at håndtere XML, og der findes to implementeringer i Python-standardbiblioteket: den ene er en ren Python-implementering, såsom xml.etree.ElementTree, og den anden er en hurtigere xml.etree.cElementTree. Bemærk: Prøv at bruge C-sproget til at implementere det, da det er hurtigere og bruger mindre hukommelse.

a. Gennemgå det næste lag af rodknuden
b. Indeksadgang til individuelle tags, attributter og tekst
c. Find det angivne tag under root
d. Gennemgang af XML-filer
e. Ændr XML-filen

Udgang:

Vedhæftet:

2.3 xml.sax.*

SAX er et begivenhedsdrevet API, der bruger SAX til at parse XML i to dele: parseren og hændelseshandleren.

Parseren er ansvarlig for at læse XML-dokumentet og sende begivenheder til hændelseshåndtereren, såsom elementstart- og elementslutbegivenheder

Hændelsesprocessoren er ansvarlig for at reagere på begivenhederne og behandle de overleverede XML-data

Almindelige scenarier:

(1) Behandle store dokumenter

(2) Kun en del af dokumentet er påkrævet, eller specifik information indhentes kun fra filen

(3) Jeg vil bygge min egen objektmodel





Tidligere:Løsning: Installationsprogrammet, der bruges til at installere Visual Studio, er ufuldstændigt
Næste:VS Code-kode hurtige formateringsgenveje
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com