Table des matières
Dans la première partie de cette partie tutoriel, nous avons établi tous les paramètres dont nous avons besoin pour pouvoir réaliser le projet que nous avons indiqué dans le tutoriel de construction d'un site Web à partir d'un fichier XML.Dans cette deuxième partie, nous allons réaliser tout ce qui est prévu en utilisant PythonEn raison de la complexité des différents aspects du projet, il est possible que dans notre première implémentation, nous n'ayons pas tout parfait, cependant, c'est bien car cela nous donne la possibilité de créer un prototype fonctionnel et d'améliorer ses composants.
Gérer le contenu
Notre première action sera de gérer le contenu de nos fichier XML, pour cela nous utiliserons SAXO que nous avions déjà installé ou vérifié que nous l'avions dans la partie précédente du tutoriel.
Pour y parvenir, nous créons d'abord un conteneur, auquel nous allons passer notre fichier XML que nous avons créé.
Voyons le code que nous devons placer :
de xml.sax.handler importer ContentHandler de xml.sax importer la classe d'analyse TestHandler (ContentHandler): passer l'analyse ('website.xml', TestHandler ())
Lors de l'exécution, nous ne devrions pas avoir d'erreurs, cela signifie que notre XML est déjà chargé et que le analyseur a fait son travail, au cas où nous voyions une erreur ou une exception, nous devons nous documenter pour voir quelle en est la cause, nous pouvons nous fier à Internet et à la documentation complète dont il dispose Python.
Maintenant, nous allons ajouter une méthode qui nous montre que ce que nous avons déduit est vrai, dans notre classe Gestionnaire de test nous allons incorporer le code suivant :
def startElement (self, name, attrs): print name, attrs.keys ()
Lorsque nous exécuterons à nouveau notre programme, nous verrons quelque chose comme ce que l'image suivante nous montre :
Notre classe devrait être la suivante :
à partir de xml.sax.handler importer ContentHandler à partir de xml.sax importer la classe d'analyse 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 (texte) self.in_headline = False def caractères (self, chaîne): if self.in_headline: self.data.append (string) headlines = [] parse ('website. xml', HeadlineHandler (titres)) print 'Ce qui suitSalut. Je m'appelle M. Gumby, et voici ma page d'accueil. Voici quelques-uns de mes centres d'intérêt :
- En criant
- Dormir
- Manger
Si nous l'exécutons dans un navigateur, nous verrons qu'il est interprété correctement et nous obtiendrons un résultat similaire au suivant :