Python + XML část 2

Obsah
V první části této části tutoriálu jsme stanovili všechny parametry, které potřebujeme, abychom mohli realizovat projekt, který jsme uvedli v tutoriálu o vytváření webu počínaje souborem XML.
V této druhé části provedeme vše naplánované pomocí KrajtaVzhledem ke složitosti různých aspektů projektu je možné, že v naší první implementaci nebudeme mít vše dokonalé, nicméně je to dobré, protože nám to dává příležitost vytvořit funkční prototyp a vylepšit jeho součásti.
Správa obsahu
Naší první akcí bude správa našeho obsahu XML souborK tomu použijeme SAXOFON že jsme již nainstalovali nebo ověřili, že jsme to měli v předchozí části tutoriálu.
Abychom toho dosáhli, nejprve vytvoříme kontejner, do kterého předáme náš soubor XML, který jsme vytvořili.
Podívejme se na kód, který musíme umístit:
 z xml.sax.handler importovat ContentHandler z xml.sax importovat analyzovat třídu TestHandler (ContentHandler): pass parse ('website.xml', TestHandler ()) 

Při provádění tohoto bychom neměli mít žádné chyby, to znamená, že naše XML je již načteno a že analyzátor udělal svou práci, v případě, že uvidíme nějakou chybu nebo výjimku, musíme se zdokumentovat, abychom zjistili, co je příčinou, můžeme se spolehnout na internet a rozsáhlou dokumentaci, kterou má Krajta.
Nyní přidáme metodu, která nám ukazuje, že to, co jsme vyvodili, je v naší třídě pravdivé TestHandler začleníme následující kód:
 def startElement (self, name, attrs): print name, attrs.keys () 

Když znovu spustíme náš program, uvidíme něco jako to, co nám ukazuje následující obrázek:

Nyní je dalším krokem získání informací, které každý prvek obsahuje, proto začleníme metody třídy ContentHandler SAX a získáme prvky H1, které existují v našem souboru XML.
Naše třída by měla být následující:
 from xml.sax.handler import ContentHandler from xml.sax import parse class HeadlineHandler (ContentHandler): in_headline = False def __init __ (self, headlines): ContentHandler .__ init __ (self) self.headlines = headlines 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 = Falešné znaky (self, string): if self.in_headline: self.data.append (string) headlines = [] parse ('web. xml ', HeadlineHandler (titulky)) tisk' Následující

Ahoj. Jmenuji se pan Gumby a toto je moje domovská stránka. Zde jsou některé z mých zájmů:

  • Křik
  • Spící
  • Jíst

Pokud jej spustíme v prohlížeči, uvidíme, že je interpretován správně, a budeme mít výsledek podobný následujícímu:

Abychom toho dosáhli, dokončili jsme naši první iteraci a tento tutoriál, je na každém, aby projekt rozšířil, aby vylepšil všechny získané znalosti a vylepšil ten první program mnohem více.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod
wave wave wave wave wave