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