Python + XML 2. dio

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:

Sljedeći korak je pribavljanje informacija koje svaki element sadrži, za to ćemo ugraditi metode klase ContentHandler SAX -a i dobit ćemo H1 elemente koji postoje u našoj XML datoteci.
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će

Bok 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:

Postigavši ​​to, završili smo prvu iteraciju i ovaj vodič, na svakom je da produži projekt kako bi ispolirao svo stečeno znanje i još više poboljšao taj prvi program.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod
wave wave wave wave wave