Python + XML deel 2

Inhoudsopgave
In het eerste deel van dit zelfstudiegedeelte hebben we alle parameters vastgelegd die we nodig hebben om het project uit te voeren dat we hebben aangegeven in de zelfstudie van het bouwen van een website vanuit een XML-bestand.
In dit tweede deel gaan we alles wat gepland is uitvoeren met behulp van PythonVanwege de complexiteit van de verschillende aspecten van het project, is het mogelijk dat we bij onze eerste implementatie niet alles perfect hebben, maar dit is goed omdat het ons de mogelijkheid geeft om een ​​werkend prototype te maken en de componenten ervan te verbeteren.
Inhoud beheren
Onze eerste actie zal zijn om de inhoud van onze XML-bestand, hiervoor gebruiken we SAX die we al hadden geïnstalleerd of geverifieerd dat we het hadden in het vorige deel van de tutorial.
Om dit te bereiken, maken we eerst een container, waaraan we ons XML-bestand gaan doorgeven dat we hebben gemaakt.
Laten we eens kijken naar de code die we moeten plaatsen:
 van xml.sax.handler import ContentHandler van xml.sax import ontleden klasse TestHandler (ContentHandler): pass ontleden ('website.xml', TestHandler ()) 

Bij het uitvoeren van dit zouden we geen fouten moeten hebben, dat betekent dat onze XML al is geladen en dat de parser zijn werk heeft gedaan, voor het geval we een fout of uitzondering zien, moeten we onszelf documenteren om te zien wat de oorzaak is, we kunnen vertrouwen op internet en de uitgebreide documentatie die het heeft Python.
Nu gaan we een methode toevoegen die ons laat zien dat wat we hebben afgeleid waar is, in onze klas TestHandler we gaan de volgende code opnemen:
 def startElement (zelf, naam, attrs): printnaam, attrs.keys () 

Wanneer we ons programma opnieuw uitvoeren, zien we zoiets als wat de volgende afbeelding ons laat zien:

Nu is de volgende stap het verkrijgen van de informatie die elk element bevat, hiervoor gaan we de methoden van de klasse opnemen ContentHandler van SAX en we gaan de H1-elementen verkrijgen die in ons XML-bestand staan.
Onze klasse zou als volgt moeten zijn:
 van xml.sax.handler import ContentHandler van xml.sax import ontleden klasse HeadlineHandler (ContentHandler): in_headline = False def __init __ (zelf, koppen): ContentHandler .__ init __ (zelf) self.headlines = koppen 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 = Onjuiste def-tekens (self, string): if self.in_headline: self.data.append (string) headlines = [] parse ('website. xml', HeadlineHandler (headlines)) print 'The next

Hoi. Mijn naam is Mr. Gumby, en dit is mijn startpagina. Hier zijn enkele van mijn interesses:

  • schreeuwen
  • Slapen
  • Aan het eten

Als we het in een browser uitvoeren, zullen we zien dat het correct wordt geïnterpreteerd en krijgen we een resultaat dat lijkt op het volgende:

Om dit te bereiken hebben we onze eerste iteratie en deze tutorial voltooid, het is aan iedereen om het project uit te breiden, om alle opgedane kennis op te poetsen en dat eerste programma nog veel meer te verbeteren.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven
wave wave wave wave wave