J'utilise (toujours ;-) xml.sax pour convertir un fichier XML en fichier
de requêtes SQL.
Dans ma classe Handler(ContentHandler), j'ai besoin d'utiliser dans la
méthode characters(self, text) des variables issues de la méthode
startElement(self, name, attr). Par exemple le contenu de attr['id'].
Comment puis-je faire ? J'ai essayer d'emboîter characters dans
startElement mais cela ne donne rien.
Mathématiquement (je comprends mieux comme ça), en gros, la fonction f
stocke les variables x, y, z et je souhaites que la fonction g prenne x,
y en paramètres pour sortir t, u et x, y ;-)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Hervé Cauwelier
Dans ma classe Handler(ContentHandler), j'ai besoin d'utiliser dans la méthode characters(self, text) des variables issues de la méthode startElement(self, name, attr). Par exemple le contenu de attr['id'].
Rapidement, je n'ai pas regardé en détail, et par expérience de la dernière fois où j'ai joué avec Sax...
Tu es dans une instance de classe, profite de la persistance de self pour allouer des attributs d'un appel de méthode à l'autre.
Conseil gratuit : n'oublie pas que tu programmes une machine à état.
-- Hervé Cauwelier http://www.oursours.net/
Dans ma classe Handler(ContentHandler), j'ai besoin d'utiliser dans la
méthode characters(self, text) des variables issues de la méthode
startElement(self, name, attr). Par exemple le contenu de attr['id'].
Rapidement, je n'ai pas regardé en détail, et par expérience de la
dernière fois où j'ai joué avec Sax...
Tu es dans une instance de classe, profite de la persistance de self
pour allouer des attributs d'un appel de méthode à l'autre.
Conseil gratuit : n'oublie pas que tu programmes une machine à état.
Dans ma classe Handler(ContentHandler), j'ai besoin d'utiliser dans la méthode characters(self, text) des variables issues de la méthode startElement(self, name, attr). Par exemple le contenu de attr['id'].
Rapidement, je n'ai pas regardé en détail, et par expérience de la dernière fois où j'ai joué avec Sax...
Tu es dans une instance de classe, profite de la persistance de self pour allouer des attributs d'un appel de méthode à l'autre.
Conseil gratuit : n'oublie pas que tu programmes une machine à état.
-- Hervé Cauwelier http://www.oursours.net/
F. Petitjean
Bonjour,
J'utilise (toujours ;-) xml.sax pour convertir un fichier XML en fichier de requêtes SQL.
Dans ma classe Handler(ContentHandler), j'ai besoin d'utiliser dans la méthode characters(self, text) des variables issues de la méthode startElement(self, name, attr). Par exemple le contenu de attr['id'].
Comment puis-je faire ? J'ai essayer d'emboîter characters dans startElement mais cela ne donne rien.
Mathématiquement (je comprends mieux comme ça), en gros, la fonction f stocke les variables x, y, z et je souhaites que la fonction g prenne x, y en paramètres pour sortir t, u et x, y ;-)
Ce ne sont pas des fonctions mais des méthodes et c'est ce qui vous sauve : le premier argument 'self' désigne l'objet courant et vous pouvez définir/redéfinir un attribut à tout moment (pas que dans __init__). Par exemple self.attr_id = attr['id'] # dans startElement
Dans votre cas, comme vous dérivez d'une autre classe il faut tout de même faire attention au nom choisi pour l'attribut, mais à mon avis un truc du genre self.toto ou self.machin ne devrait pas enter en conflit avec des noms de la classe de base :-) self.machin = 'pouet' est équivalent à setattr(self, 'machin', 'pouet')
Merci. Rémi (et pas Jules)
Bonjour,
J'utilise (toujours ;-) xml.sax pour convertir un fichier XML en fichier
de requêtes SQL.
Dans ma classe Handler(ContentHandler), j'ai besoin d'utiliser dans la
méthode characters(self, text) des variables issues de la méthode
startElement(self, name, attr). Par exemple le contenu de attr['id'].
Comment puis-je faire ? J'ai essayer d'emboîter characters dans
startElement mais cela ne donne rien.
Mathématiquement (je comprends mieux comme ça), en gros, la fonction f
stocke les variables x, y, z et je souhaites que la fonction g prenne x,
y en paramètres pour sortir t, u et x, y ;-)
Ce ne sont pas des fonctions mais des méthodes et c'est ce qui vous
sauve : le premier argument 'self' désigne l'objet courant et vous
pouvez définir/redéfinir un attribut à tout moment (pas que dans
__init__). Par exemple self.attr_id = attr['id'] # dans startElement
Dans votre cas, comme vous dérivez d'une autre classe il faut tout de
même faire attention au nom choisi pour l'attribut, mais à mon avis un
truc du genre self.toto ou self.machin ne devrait pas enter en
conflit avec des noms de la classe de base :-)
self.machin = 'pouet' est équivalent à setattr(self, 'machin', 'pouet')
J'utilise (toujours ;-) xml.sax pour convertir un fichier XML en fichier de requêtes SQL.
Dans ma classe Handler(ContentHandler), j'ai besoin d'utiliser dans la méthode characters(self, text) des variables issues de la méthode startElement(self, name, attr). Par exemple le contenu de attr['id'].
Comment puis-je faire ? J'ai essayer d'emboîter characters dans startElement mais cela ne donne rien.
Mathématiquement (je comprends mieux comme ça), en gros, la fonction f stocke les variables x, y, z et je souhaites que la fonction g prenne x, y en paramètres pour sortir t, u et x, y ;-)
Ce ne sont pas des fonctions mais des méthodes et c'est ce qui vous sauve : le premier argument 'self' désigne l'objet courant et vous pouvez définir/redéfinir un attribut à tout moment (pas que dans __init__). Par exemple self.attr_id = attr['id'] # dans startElement
Dans votre cas, comme vous dérivez d'une autre classe il faut tout de même faire attention au nom choisi pour l'attribut, mais à mon avis un truc du genre self.toto ou self.machin ne devrait pas enter en conflit avec des noms de la classe de base :-) self.machin = 'pouet' est équivalent à setattr(self, 'machin', 'pouet')