main()
#----------
Ceci me renvoie :
tag : sousSection
attrssect id : 1
attrssect rubrik : 1
tag : sousSection
attrssect id : 1
attrssect rubrik : 1
tag : sousSection
attrssect id : 2
attrssect rubrik : 1
[...]
alors que les id numérotent les sous-sections et que le doc XML est
"bien-formé" du style :
<section id="1" name="Nom" description="blabla">
<sousSection id="1" rubrik="1" thema="mon thème">
<texte>texte</texte>
</sousSection>
<sousSection id="2" rubrik="1" thema="thème 2">
<texte>texte</texte>
</sousSection>
J'ai par exemple deux fois "attrssect id" : 1, deux fois "attrssect id :
8", une fois les autres... C'est étrange.
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
Ahmed MOHAMED ALI
Salut, Une possibilité est que la méthode characters soit appelée plusieurs fois.Pour que ça fonctionne, place ton code dans la méthode endElement au lieu de le mettre dans la méthode characters.
cordialement, Ahmed
"remi" wrote in message news:dmrge.57873$
Bonjour,
J'ai un problème de doublon avec l'handler ci-dessous
#---------
class MyHandler(ContentHandler): def startDocument(self): self._stack = []
main() #---------- Ceci me renvoie : tag : sousSection attrssect id : 1 attrssect rubrik : 1 tag : sousSection attrssect id : 1 attrssect rubrik : 1 tag : sousSection attrssect id : 2 attrssect rubrik : 1 [...] alors que les id numérotent les sous-sections et que le doc XML est "bien-formé" du style : <section id="1" name="Nom" description="blabla"> <sousSection id="1" rubrik="1" thema="mon thème"> <texte>texte</texte> </sousSection> <sousSection id="2" rubrik="1" thema="thème 2"> <texte>texte</texte> </sousSection>
J'ai par exemple deux fois "attrssect id" : 1, deux fois "attrssect id : 8", une fois les autres... C'est étrange.
Auriez-vous une idée ? Merci. Rémi.
Salut,
Une possibilité est que la méthode characters soit appelée plusieurs
fois.Pour que ça fonctionne, place ton code dans la méthode endElement au
lieu de le mettre dans la méthode characters.
cordialement,
Ahmed
"remi" <rboulle.invalid@freeeeeee.fr> wrote in message
news:dmrge.57873$Of5.35540@nntpserver.swip.net...
Bonjour,
J'ai un problème de doublon avec l'handler ci-dessous
#---------
class MyHandler(ContentHandler):
def startDocument(self):
self._stack = []
main()
#----------
Ceci me renvoie :
tag : sousSection
attrssect id : 1
attrssect rubrik : 1
tag : sousSection
attrssect id : 1
attrssect rubrik : 1
tag : sousSection
attrssect id : 2
attrssect rubrik : 1
[...]
alors que les id numérotent les sous-sections et que le doc XML est
"bien-formé" du style :
<section id="1" name="Nom" description="blabla">
<sousSection id="1" rubrik="1" thema="mon thème">
<texte>texte</texte>
</sousSection>
<sousSection id="2" rubrik="1" thema="thème 2">
<texte>texte</texte>
</sousSection>
J'ai par exemple deux fois "attrssect id" : 1, deux fois "attrssect id :
8", une fois les autres... C'est étrange.
Salut, Une possibilité est que la méthode characters soit appelée plusieurs fois.Pour que ça fonctionne, place ton code dans la méthode endElement au lieu de le mettre dans la méthode characters.
cordialement, Ahmed
"remi" wrote in message news:dmrge.57873$
Bonjour,
J'ai un problème de doublon avec l'handler ci-dessous
#---------
class MyHandler(ContentHandler): def startDocument(self): self._stack = []
main() #---------- Ceci me renvoie : tag : sousSection attrssect id : 1 attrssect rubrik : 1 tag : sousSection attrssect id : 1 attrssect rubrik : 1 tag : sousSection attrssect id : 2 attrssect rubrik : 1 [...] alors que les id numérotent les sous-sections et que le doc XML est "bien-formé" du style : <section id="1" name="Nom" description="blabla"> <sousSection id="1" rubrik="1" thema="mon thème"> <texte>texte</texte> </sousSection> <sousSection id="2" rubrik="1" thema="thème 2"> <texte>texte</texte> </sousSection>
J'ai par exemple deux fois "attrssect id" : 1, deux fois "attrssect id : 8", une fois les autres... C'est étrange.
Auriez-vous une idée ? Merci. Rémi.
bruno modulix
Ahmed MOHAMED ALI wrote: (snip)
"remi" wrote in message news:dmrge.57873$
Bonjour,
J'ai un problème de doublon avec l'handler ci-dessous
#---------
class MyHandler(ContentHandler): def startDocument(self): self._stack = []
#---------- Ceci me renvoie : tag : sousSection attrssect id : 1 attrssect rubrik : 1 tag : sousSection attrssect id : 1 attrssect rubrik : 1 tag : sousSection attrssect id : 2 attrssect rubrik : 1 [...]
alors que les id numérotent les sous-sections et que le doc XML est "bien-formé" du style : <section id="1" name="Nom" description="blabla"> <sousSection id="1" rubrik="1" thema="mon thème"> <texte>texte</texte> </sousSection> <sousSection id="2" rubrik="1" thema="thème 2"> <texte>texte</texte> </sousSection>
<meta> "est du style" ?-) Tu devrais poster (au moins un extrait) le fichier avec lequel tu a le problème. Ou s'il est trop long, poster une url permettant de le consulter. </meta>
J'ai par exemple deux fois "attrssect id" : 1, deux fois "attrssect id : 8", une fois les autres... C'est étrange.
S'il y a par exemple des sauts de lignes ou autres dans une portion CDATA (-> le texte entre deux balises...), la methode character() sera appelée plusieurs fois.
Auriez-vous une idée ? Déjà, et sous réserve que tu en ai besoin pour autre chose (ce qui ne
def characters(self, text): name, attr = self._stack[-1] if name == "sousSection": if not self._deja_vu: print "tag : %s" % name print "attrssect id : %s" % str(attr['id']) print "attrssect rubrik : %s" % str(attr['rubrik']) self._deja_vu = True else: # on est toujours dans la même sous-section pass
Maintenant, plutôt que de répondre au cas par cas et sur des exemples ne correspondant pas vraiment à la finalité de ce code, il serait peut-être mieux que tu nous explique exactement ce que tu veux faire et *comment* tu penses le faire...
Mes deux centimes -- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Ahmed MOHAMED ALI wrote:
(snip)
"remi" <rboulle.invalid@freeeeeee.fr> wrote in message
news:dmrge.57873$Of5.35540@nntpserver.swip.net...
Bonjour,
J'ai un problème de doublon avec l'handler ci-dessous
#---------
class MyHandler(ContentHandler):
def startDocument(self):
self._stack = []
#----------
Ceci me renvoie :
tag : sousSection
attrssect id : 1
attrssect rubrik : 1
tag : sousSection
attrssect id : 1
attrssect rubrik : 1
tag : sousSection
attrssect id : 2
attrssect rubrik : 1
[...]
alors que les id numérotent les sous-sections et que le doc XML est
"bien-formé" du style :
<section id="1" name="Nom" description="blabla">
<sousSection id="1" rubrik="1" thema="mon thème">
<texte>texte</texte>
</sousSection>
<sousSection id="2" rubrik="1" thema="thème 2">
<texte>texte</texte>
</sousSection>
<meta>
"est du style" ?-)
Tu devrais poster (au moins un extrait) le fichier avec lequel tu a le
problème. Ou s'il est trop long, poster une url permettant de le consulter.
</meta>
J'ai par exemple deux fois "attrssect id" : 1, deux fois "attrssect id :
8", une fois les autres... C'est étrange.
S'il y a par exemple des sauts de lignes ou autres dans une portion
CDATA (-> le texte entre deux balises...), la methode character() sera
appelée plusieurs fois.
Auriez-vous une idée ?
Déjà, et sous réserve que tu en ai besoin pour autre chose (ce qui ne
def characters(self, text):
name, attr = self._stack[-1]
if name == "sousSection":
if not self._deja_vu:
print "tag : %s" % name
print "attrssect id : %s" % str(attr['id'])
print "attrssect rubrik : %s" % str(attr['rubrik'])
self._deja_vu = True
else:
# on est toujours dans la même sous-section
pass
Maintenant, plutôt que de répondre au cas par cas et sur des exemples ne
correspondant pas vraiment à la finalité de ce code, il serait peut-être
mieux que tu nous explique exactement ce que tu veux faire et
*comment* tu penses le faire...
Mes deux centimes
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"
#---------- Ceci me renvoie : tag : sousSection attrssect id : 1 attrssect rubrik : 1 tag : sousSection attrssect id : 1 attrssect rubrik : 1 tag : sousSection attrssect id : 2 attrssect rubrik : 1 [...]
alors que les id numérotent les sous-sections et que le doc XML est "bien-formé" du style : <section id="1" name="Nom" description="blabla"> <sousSection id="1" rubrik="1" thema="mon thème"> <texte>texte</texte> </sousSection> <sousSection id="2" rubrik="1" thema="thème 2"> <texte>texte</texte> </sousSection>
<meta> "est du style" ?-) Tu devrais poster (au moins un extrait) le fichier avec lequel tu a le problème. Ou s'il est trop long, poster une url permettant de le consulter. </meta>
J'ai par exemple deux fois "attrssect id" : 1, deux fois "attrssect id : 8", une fois les autres... C'est étrange.
S'il y a par exemple des sauts de lignes ou autres dans une portion CDATA (-> le texte entre deux balises...), la methode character() sera appelée plusieurs fois.
Auriez-vous une idée ? Déjà, et sous réserve que tu en ai besoin pour autre chose (ce qui ne
def characters(self, text): name, attr = self._stack[-1] if name == "sousSection": if not self._deja_vu: print "tag : %s" % name print "attrssect id : %s" % str(attr['id']) print "attrssect rubrik : %s" % str(attr['rubrik']) self._deja_vu = True else: # on est toujours dans la même sous-section pass
Maintenant, plutôt que de répondre au cas par cas et sur des exemples ne correspondant pas vraiment à la finalité de ce code, il serait peut-être mieux que tu nous explique exactement ce que tu veux faire et *comment* tu penses le faire...
Mes deux centimes -- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
remi
Bonjour et merci !
[snip]
<meta> "est du style" ?-) Tu devrais poster (au moins un extrait) le fichier avec lequel tu a le problème. Ou s'il est trop long, poster une url permettant de le consulter. </meta>
Oui, c'est vrai, désolé. Je le ferai la prochaine fois.
J'ai par exemple deux fois "attrssect id" : 1, deux fois "attrssect id : 8", une fois les autres... C'est étrange.
S'il y a par exemple des sauts de lignes ou autres dans une portion CDATA (-> le texte entre deux balises...), la methode character() sera appelée plusieurs fois.
Arf, d'accord, je comprends mieux. Faut-il alors que je mettre tout le contenu texte (avec des sauts de ligne, des balises HTML...) dans un <![CDATA[le contenu de mon texte]]> ?
Auriez-vous une idée ?
Déjà, et sous réserve que tu en ai besoin pour autre chose (ce qui ne semble pas être le cas), virer la balise <texte> [snip]
(BTW, si l'attribut 'rubrik' de la balise <sousSection> est une référence à l'id de la balise <section> parente, vire le aussi.)
ben ça fait du ménage pour la même quantité d'infos contenues dans le XML. En effet, ces balises ne me sont pas utiles ! (en plus tu m'avais déjà parlé de virer la balise <texte>... 2 centimes, ok...)
Je mettais autant d'attribut que ce qu'il y a de cases à remplir dans la db finale (vision bijective...)
Je vais tester le code proposé et reveins vers le forum (avec un lien vers le code complet qui est trop long) Merci. @+ Rémi.
Bonjour et merci !
[snip]
<meta>
"est du style" ?-)
Tu devrais poster (au moins un extrait) le fichier avec lequel tu a le
problème. Ou s'il est trop long, poster une url permettant de le consulter.
</meta>
Oui, c'est vrai, désolé. Je le ferai la prochaine fois.
J'ai par exemple deux fois "attrssect id" : 1, deux fois "attrssect id :
8", une fois les autres... C'est étrange.
S'il y a par exemple des sauts de lignes ou autres dans une portion
CDATA (-> le texte entre deux balises...), la methode character() sera
appelée plusieurs fois.
Arf, d'accord, je comprends mieux. Faut-il alors que je mettre tout le
contenu texte (avec des sauts de ligne, des balises HTML...) dans un
<![CDATA[le contenu de mon texte]]> ?
Auriez-vous une idée ?
Déjà, et sous réserve que tu en ai besoin pour autre chose (ce qui ne
semble pas être le cas), virer la balise <texte>
[snip]
(BTW, si l'attribut 'rubrik' de la balise <sousSection> est une
référence à l'id de la balise <section> parente, vire le aussi.)
ben ça fait du ménage pour la même quantité d'infos contenues dans le
XML. En effet, ces balises ne me sont pas utiles !
(en plus tu m'avais déjà parlé de virer la balise <texte>... 2 centimes,
ok...)
Je mettais autant d'attribut que ce qu'il y a de cases à remplir dans la
db finale (vision bijective...)
Je vais tester le code proposé et reveins vers le forum (avec un lien
vers le code complet qui est trop long)
Merci.
@+
Rémi.
<meta> "est du style" ?-) Tu devrais poster (au moins un extrait) le fichier avec lequel tu a le problème. Ou s'il est trop long, poster une url permettant de le consulter. </meta>
Oui, c'est vrai, désolé. Je le ferai la prochaine fois.
J'ai par exemple deux fois "attrssect id" : 1, deux fois "attrssect id : 8", une fois les autres... C'est étrange.
S'il y a par exemple des sauts de lignes ou autres dans une portion CDATA (-> le texte entre deux balises...), la methode character() sera appelée plusieurs fois.
Arf, d'accord, je comprends mieux. Faut-il alors que je mettre tout le contenu texte (avec des sauts de ligne, des balises HTML...) dans un <![CDATA[le contenu de mon texte]]> ?
Auriez-vous une idée ?
Déjà, et sous réserve que tu en ai besoin pour autre chose (ce qui ne semble pas être le cas), virer la balise <texte> [snip]
(BTW, si l'attribut 'rubrik' de la balise <sousSection> est une référence à l'id de la balise <section> parente, vire le aussi.)
ben ça fait du ménage pour la même quantité d'infos contenues dans le XML. En effet, ces balises ne me sont pas utiles ! (en plus tu m'avais déjà parlé de virer la balise <texte>... 2 centimes, ok...)
Je mettais autant d'attribut que ce qu'il y a de cases à remplir dans la db finale (vision bijective...)
Je vais tester le code proposé et reveins vers le forum (avec un lien vers le code complet qui est trop long) Merci. @+ Rémi.