Sadržaj
U prvom dijelu ovog vodiča utvrdili smo sve parametre koje moramo imati da bismo mogli izvesti projekt koji smo naveli u vodiču za izradu web stranice počevši od XML datoteke.U ovom drugom dijelu izvršit ćemo sve planirano korištenjem PitonZbog složenosti različitih aspekata projekta, moguće je da u našoj prvoj implementaciji nećemo imati sve savršeno, međutim, to je dobro jer nam daje priliku da stvorimo radni prototip i poboljšamo njegove komponente.
Upravljanje sadržajem
Naša prva radnja bit će upravljanje sadržajem našeg XML datoteku, za to ćemo koristiti SAKSOFON da smo već instalirali ili provjerili da ga imamo u prethodnom dijelu vodiča.
Da bismo to postigli, prvo stvaramo spremnik u koji ćemo proslijediti našu XML datoteku koju smo stvorili.
Pogledajmo kod koji moramo postaviti:
iz xml.sax.handler uvoz ContentHandler iz xml.sax uvoz klase raščlanjivanja TestHandler (ContentHandler): proći raščlanjivanje ('website.xml', TestHandler ())
Prilikom izvođenja ovoga ne bismo trebali imati grešaka, to znači da je naš XML već učitan i da je parser obavio svoj posao, u slučaju da vidimo bilo kakvu pogrešku ili iznimku, moramo se dokumentirati kako bismo vidjeli što je uzrok, možemo se osloniti na internet i opsežnu dokumentaciju koju ima Piton.
Sada ćemo dodati metodu koja nam pokazuje da je ono što smo zaključili istinito, u našem razredu TestHandler ugradit ćemo sljedeći kôd:
def startElement (self, name, attrs): ispis imena, attrs.keys ()
Kad ponovno pokrenemo naš program, vidjet ćemo nešto poput onoga što nam prikazuje sljedeća slika:
Naš razred trebao bi biti sljedeći:
iz xml.sax.handler uvoz ContentHandler iz xml.sax klase raščlanjivanja uvoza HeadlineHandler (ContentHandler): in_headline = False def __init __ (self, naslovi): ContentHandler .__ init __ (self) self.headlines = naslovi 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 = Lažni def znakovi (self, string): if self.in_headline: self.data.append (string) headlines = [] parse ('website. xml ', HeadlineHandler (naslovi)) print' SljedećeBok tamo. Zovem se gospodin Gumby i ovo je moja početna stranica. Evo nekih mojih interesa:
- Viče
- Spavanje
- Jelo
Ako ga pokrenemo u pregledniku, vidjet ćemo da je ispravno protumačen i dobit ćemo rezultat sličan sljedećem: