Python + XML 2 dalis

Turinys
Pirmoje šios mokymo dalies dalyje mes nustatėme visus parametrus, kurių mums reikia, kad galėtume įgyvendinti projektą, kurį nurodėme svetainės kūrimo pamokoje, pradedant nuo XML failo.
Šioje antroje dalyje mes atliksime viską, kas suplanuota PythonDėl įvairių projekto aspektų sudėtingumo gali būti, kad pirmą kartą įgyvendindami viską neturėsime tobulai, tačiau tai yra gerai, nes tai suteikia mums galimybę sukurti veikiantį prototipą ir patobulinti jo komponentus.
Tvarkyti turinį
Pirmasis mūsų veiksmas bus valdyti savo turinį XML failas, tam mes naudosime SAX kad jau įdiegėme arba patvirtinome, kad ją turėjome ankstesnėje mokymo programos dalyje.
Norėdami tai pasiekti, pirmiausia sukuriame konteinerį, į kurį perduosime savo sukurtą XML failą.
Pažiūrėkime kodą, kurį turime pateikti:
 iš xml.sax.handler importuokite „ContentHandler“ iš „xml.sax“ importavimo analizės klasės „TestHandler“ („ContentHandler“): perduokite parse ('website.xml', TestHandler ()) 

Vykdydami tai neturėtume turėti klaidų, tai reiškia, kad mūsų XML jau įkelta ir kad analizatorius padarė savo darbą, jei matome kokią nors klaidą ar išimtį, turime patys dokumentuoti, kad išsiaiškintume, kas yra priežastis, galime pasikliauti internetu ir jo turimais išsamiais dokumentais Python.
Dabar mes pridėsime metodą, kuris parodys mums, kad tai, ką mes padarėme, yra tiesa mūsų klasėje „TestHandler“ mes įtraukiame šį kodą:
 def startElement („self“, vardas, attrs): spausdinimo pavadinimas, attrs.keys () 

Kai vėl paleisime programą, pamatysime kažką panašaus į tai, ką rodo šis paveikslėlis:

Dabar kitas žingsnis yra gauti informaciją, kurią turi kiekvienas elementas, todėl mes ketiname įtraukti klasės metodus „ContentHandler“ iš SAX ir mes gausime H1 elementus, esančius mūsų XML faile.
Mūsų klasė turėtų būti tokia:
 iš xml.sax.handler importuokite „ContentHandler“ iš xml.sax importavimo analizės klasės „HeadlineHandler“ („ContentHandler“): in_headline = False def __init __ (self, headlines): ContentHandler .__ init __ (self) self.headlines = antraštės 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 (text) self.in_headline = Klaidingi def simboliai (self, string): if self.in_headline: self.data.append (string) headlines = [] parse ('svetainė. xml ', HeadlineHandler (antraštės)) print' Toliau

Sveiki. Mano vardas yra ponas Gumby, ir tai yra mano pagrindinis puslapis. Štai keletas mano pomėgių:

  • Šaukimas
  • Miega
  • Valgymas

Jei paleisime jį naršyklėje, pamatysime, kad jis aiškinamas teisingai, o rezultatas bus panašus į šį:

Tai pasiekę, mes baigėme savo pirmąją iteraciją ir šią pamoką, kiekvienas turi pratęsti projektą, kad ištobulintų visas įgytas žinias ir dar labiau patobulintų tą pirmąją programą.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave