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:
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' ToliauSveiki. 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 į šį: