Python + XML del 2

Innholdsfortegnelse
I den første delen av denne opplæringsdelen har vi etablert alle parametrene vi trenger for å kunne utføre prosjektet som vi angav i opplæringen for å bygge et nettsted fra en XML -fil.
I denne andre delen skal vi utføre alt planlagt å bruke PythonPå grunn av kompleksiteten til de forskjellige aspektene av prosjektet, er det mulig at vi i vår første implementering ikke vil ha alt perfekt, men dette er bra siden det gir oss muligheten til å lage en fungerende prototype og forbedre komponentene.
Administrer innhold
Vår første handling vil være å administrere innholdet i vår XML -fil, for dette skal vi bruke SAX at vi allerede hadde installert eller bekreftet at vi hadde det i forrige del av opplæringen.
For å oppnå dette lager vi først en beholder, som vi skal sende XML -filen til som vi har opprettet.
La oss se koden som vi må plassere:
 fra xml.sax.handler import ContentHandler fra xml.sax import parse klasse TestHandler (ContentHandler): pass parse ('website.xml', TestHandler ()) 

Når vi utfører dette, bør vi ikke ha noen feil, det betyr at XML -filen vår allerede er lastet inn og at parser gjorde sitt arbeid, hvis vi ser noen feil eller unntak, må vi dokumentere oss selv for å se hva årsaken er, vi kan stole på internett og den omfattende dokumentasjonen den har Python.
Nå skal vi legge til en metode som viser oss at det vi har antatt er sant, i klassen vår TestHandler vi skal innlemme følgende kode:
 def startElement (self, name, attrs): print name, attrs.keys () 

Når vi kjører programmet igjen, vil vi se noe som det følgende bildet viser oss:

Nå er det neste trinnet å skaffe informasjonen som hvert element inneholder, for dette skal vi inkorporere klassens metoder ContentHandler av SAX, og vi skal skaffe H1 -elementene som finnes i XML -filen vår.
Klassen vår bør være som følger:
 fra xml.sax.handler import ContentHandler fra xml.sax import parse class HeadlineHandler (ContentHandler): in_headline = False def __init __ (self, headlines): 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 = Falske def -tegn (self, string): hvis self.in_headline: self.data.append (string) headlines = [] parse ('nettsted. xml ', HeadlineHandler (headlines)) print' The following

Hei der. Jeg heter Mr. Gumby, og dette er hjemmesiden min. Her er noen av mine interesser:

  • Roper
  • Sover
  • Spiser

Hvis vi kjører den i en nettleser, vil vi se at den tolkes riktig, og vi får et resultat som ligner på følgende:

Når vi oppnådde dette, avsluttet vi vår første iterasjon og denne opplæringen. Det er opp til hver enkelt å forlenge prosjektet, for å polere all kunnskapen som er oppnådd og forbedre det første programmet mye mer.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng
wave wave wave wave wave