Python + XML część 2

Spisie treści
W pierwszej części tego samouczka ustaliliśmy wszystkie parametry, które musimy mieć, aby móc wykonać projekt, który wskazaliśmy w samouczku budowania strony internetowej z pliku XML.
W tej drugiej części zrealizujemy wszystko, co zaplanowaliśmy za pomocą PytonZe względu na złożoność różnych aspektów projektu możliwe jest, że w naszej pierwszej realizacji nie wszystko będzie idealne, jednak jest to dobre, ponieważ daje nam możliwość stworzenia działającego prototypu i ulepszenia jego komponentów.
Zarządzaj treścią
Naszym pierwszym działaniem będzie zarządzanie treścią naszego Plik XML, do tego użyjemy SAX że już zainstalowaliśmy lub sprawdziliśmy, że mamy go w poprzedniej części samouczka.
Aby to osiągnąć, najpierw tworzymy kontener, do którego przekażemy nasz utworzony przez nas plik XML.
Zobaczmy kod, który musimy umieścić:
 z xml.sax.handler import ContentHandler z xml.sax import parse class TestHandler (ContentHandler): pass parse ('website.xml', TestHandler ()) 

Podczas wykonywania tego nie powinniśmy mieć żadnych błędów, co oznacza, że ​​nasz XML jest już załadowany i że parser wykonał swoją pracę, jeśli zauważymy jakiś błąd lub wyjątek, musimy sami udokumentować, co jest przyczyną, możemy polegać na Internecie i obszernej dokumentacji, którą posiada Pyton.
Teraz dodamy metodę, która pokaże nam, że to, co wywnioskowaliśmy, jest prawdą w naszej klasie Program obsługi testów zamierzamy włączyć następujący kod:
 def startElement (self, name, attrs): wypisz nazwę, attrs.keys () 

Gdy ponownie uruchomimy nasz program, zobaczymy coś takiego jak na poniższym obrazku:

Teraz następnym krokiem jest uzyskanie informacji, które zawiera każdy element, w tym celu zamierzamy włączyć metody klasy Program obsługi treści SAX i zamierzamy uzyskać elementy H1, które istnieją w naszym pliku XML.
Nasza klasa powinna wyglądać następująco:
 z xml.sax.handler import ContentHandler z xml.sax import parse class HeadlineHandler (ContentHandler): in_headline = False def __init __ (self, headlines): ContentHandler .__ init __ (self) self.headlines = nagłówki 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 = Fałszywe znaki def (self, string): jeśli self.in_headline: self.data.append (string) headlines = [] parse ('strona internetowa. xml', HeadlineHandler (nagłówki)) drukuj 'Poniższe

Cześć. Nazywam się Pan Gumby, a to jest moja strona domowa. Oto niektóre z moich zainteresowań:

  • Rozkrzyczany
  • Spanie
  • Jedzenie

Jeśli uruchomimy go w przeglądarce, zobaczymy, że jest poprawnie zinterpretowany i otrzymamy wynik podobny do poniższego:

Osiągając to zakończyliśmy naszą pierwszą iterację i ten samouczek, każdy powinien rozszerzyć projekt, aby doszlifować całą zdobytą wiedzę i znacznie bardziej ulepszyć pierwszy program.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt
wave wave wave wave wave