Indholdsfortegnelse
I den første del af denne selvstudiedel har vi etableret alle de parametre, vi skal have for at kunne udføre det projekt, som vi angav i selvstudiet om at bygge et websted ud fra en XML -fil.I denne anden del skal vi udføre alt planlagt ved hjælp af PythonPå grund af kompleksiteten i de forskellige aspekter af projektet er det muligt, at vi i vores første implementering ikke vil have alt perfekt, men det er godt, da det giver os mulighed for at oprette en fungerende prototype og forbedre dens komponenter.
Administrer indhold
Vores første handling vil være at styre indholdet i vores XML -fil, til dette vil vi bruge SAX at vi allerede havde installeret eller bekræftet, at vi havde det i forrige del af selvstudiet.
For at opnå dette opretter vi først en container, hvortil vi skal videregive vores XML -fil, som vi har oprettet.
Lad os se koden, som vi skal placere:
fra xml.sax.handler import ContentHandler fra xml.sax import parse klasse TestHandler (ContentHandler): pass parse ('website.xml', TestHandler ())
Når vi udfører dette, bør vi ikke have nogen fejl, det betyder, at vores XML allerede er indlæst, og at parser gjorde sit arbejde, hvis vi ser en fejl eller undtagelse, skal vi dokumentere os selv for at se, hvad årsagen er, vi kan stole på internettet og den omfattende dokumentation, det har Python.
Nu skal vi tilføje en metode, der viser os, at det, vi har udledt, er sandt i vores klasse TestHandler vi vil indarbejde følgende kode:
def startElement (self, name, attrs): print name, attrs.keys ()
Når vi kører vores program igen, vil vi se noget i retning af, hvad følgende billede viser os:
Nu er det næste trin at indhente de oplysninger, som hvert element indeholder, til dette vil vi inkorporere klassens metoder ContentHandler af SAX, og vi vil hente de H1 -elementer, der findes i vores XML -fil.
Vores klasse skal være som følger:
fra xml.sax.handler import ContentHandler fra xml.sax import parse klasse HeadlineHandler (ContentHandler): in_headline = Falsk def __init __ (self, overskrifter): ContentHandler .__ init __ (self) self.headlines = headlines self.data = [ ] def startElement (self, name, attrs): if name == 'h1': self.in_headline = True def endElement (self, name): if name == 'h1': text = '' .join (self.data ) self. data = [] self.headlines.append (tekst) self.in_headline = False def tegn (self, string): if self.in_headline: self.data.append (string) headlines = [] parse ('website. xml ', HeadlineHandler (headlines)) print' FølgendeHej. Mit navn er Mr. Gumby, og dette er min hjemmeside. Her er nogle af mine interesser:
- Råber
- Sovende
- Spise
Hvis vi kører det i en browser, vil vi se, at det tolkes korrekt, og vi får et resultat svarende til følgende:
For at opnå dette afsluttede vi vores første iteration og denne vejledning, det er op til hver enkelt at udvide projektet for at polere al den opnåede viden og forbedre det første program meget mere.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt