Je souhaite extraire d'un fichier XML le texte compris entre deux tags.
J'utilise minidom (c'est pour un XML très simple)
Pour l'instant, avec :
for node in dom.getElementsByTagName('titre'):
print node.toxml()
j'obtiens le noeud en entier par exemple : <titre>Mon titre</titre>.
Auriez-vous une idée, un conseil ou une doc ?
Merci.
Rémi.
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
Jerome
remi wrote:
Bonjour,
Bonjour
Je souhaite extraire d'un fichier XML le texte compris entre deux tags. J'utilise minidom (c'est pour un XML très simple) Pour l'instant, avec : for node in dom.getElementsByTagName('titre'): print node.toxml() j'obtiens le noeud en entier par exemple : <titre>Mon titre</titre>.
C'est le comportement normal, getElementsByTagName() renvoie un noeud dom qui est un sous-arbre et toxml() renvoie la chaine xml correspondant au sous-arbre.
En dom, les noeuds textes sont des noeuds à part entière et il faut donc explicitement récupérer le bon noeud texte que tu désires, suivant tes données, avec par exemple :
print node.childNodes[0].nodeValue
remi wrote:
Bonjour,
Bonjour
Je souhaite extraire d'un fichier XML le texte compris entre deux tags.
J'utilise minidom (c'est pour un XML très simple)
Pour l'instant, avec :
for node in dom.getElementsByTagName('titre'):
print node.toxml()
j'obtiens le noeud en entier par exemple : <titre>Mon titre</titre>.
C'est le comportement normal, getElementsByTagName() renvoie un noeud
dom qui est un sous-arbre et toxml() renvoie la chaine xml correspondant
au sous-arbre.
En dom, les noeuds textes sont des noeuds à part entière et il faut donc
explicitement récupérer le bon noeud texte que tu désires, suivant tes
données, avec par exemple :
Je souhaite extraire d'un fichier XML le texte compris entre deux tags. J'utilise minidom (c'est pour un XML très simple) Pour l'instant, avec : for node in dom.getElementsByTagName('titre'): print node.toxml() j'obtiens le noeud en entier par exemple : <titre>Mon titre</titre>.
C'est le comportement normal, getElementsByTagName() renvoie un noeud dom qui est un sous-arbre et toxml() renvoie la chaine xml correspondant au sous-arbre.
En dom, les noeuds textes sont des noeuds à part entière et il faut donc explicitement récupérer le bon noeud texte que tu désires, suivant tes données, avec par exemple :
print node.childNodes[0].nodeValue
Rémi
Bonjour,
remi wrote:
for node in dom.getElementsByTagName('titre'): print node.toxml() j'obtiens le noeud en entier par exemple : <titre>Mon titre</titre>.
C'est le comportement normal, getElementsByTagName() renvoie un noeud dom qui est un sous-arbre et toxml() renvoie la chaine xml correspondant au sous-arbre.
En dom, les noeuds textes sont des noeuds à part entière et il faut donc explicitement récupérer le bon noeud texte que tu désires, suivant tes données, avec par exemple :
print node.childNodes[0].nodeValue
Merci, c'est ce qui fonctionne. Au fur et à mesure que je me documente, il semblerait qu'il soit plus pertinent d'utiliser l'API SAX de python. Le but est de convertir un XML en SQL. Merci. Rémi.
Bonjour,
remi wrote:
for node in dom.getElementsByTagName('titre'):
print node.toxml()
j'obtiens le noeud en entier par exemple : <titre>Mon titre</titre>.
C'est le comportement normal, getElementsByTagName() renvoie un noeud
dom qui est un sous-arbre et toxml() renvoie la chaine xml correspondant
au sous-arbre.
En dom, les noeuds textes sont des noeuds à part entière et il faut donc
explicitement récupérer le bon noeud texte que tu désires, suivant tes
données, avec par exemple :
print node.childNodes[0].nodeValue
Merci, c'est ce qui fonctionne.
Au fur et à mesure que je me documente, il semblerait qu'il soit plus
pertinent d'utiliser l'API SAX de python.
Le but est de convertir un XML en SQL.
Merci.
Rémi.
for node in dom.getElementsByTagName('titre'): print node.toxml() j'obtiens le noeud en entier par exemple : <titre>Mon titre</titre>.
C'est le comportement normal, getElementsByTagName() renvoie un noeud dom qui est un sous-arbre et toxml() renvoie la chaine xml correspondant au sous-arbre.
En dom, les noeuds textes sont des noeuds à part entière et il faut donc explicitement récupérer le bon noeud texte que tu désires, suivant tes données, avec par exemple :
print node.childNodes[0].nodeValue
Merci, c'est ce qui fonctionne. Au fur et à mesure que je me documente, il semblerait qu'il soit plus pertinent d'utiliser l'API SAX de python. Le but est de convertir un XML en SQL. Merci. Rémi.
Jerome
Rémi wrote:
Bonjour,
remi wrote:
for node in dom.getElementsByTagName('titre'): print node.toxml() j'obtiens le noeud en entier par exemple : <titre>Mon titre</titre>.
C'est le comportement normal, getElementsByTagName() renvoie un noeud dom qui est un sous-arbre et toxml() renvoie la chaine xml correspondant au sous-arbre.
En dom, les noeuds textes sont des noeuds à part entière et il faut donc explicitement récupérer le bon noeud texte que tu désires, suivant tes données, avec par exemple :
print node.childNodes[0].nodeValue
Merci, c'est ce qui fonctionne. Au fur et à mesure que je me documente, il semblerait qu'il soit plus pertinent d'utiliser l'API SAX de python.
Tout dépend du problème. Sax est évenementiel et est très performant pour une transformation en 1 passage. Mais parfois il est utile de travailler sur des transformations trop compliquées à faire en sax mais pas en dom.
Le but est de convertir un XML en SQL.
Alors je pense que Sax est plus adapté aussi.
Merci. Rémi.
Rémi wrote:
Bonjour,
remi wrote:
for node in dom.getElementsByTagName('titre'):
print node.toxml()
j'obtiens le noeud en entier par exemple : <titre>Mon titre</titre>.
C'est le comportement normal, getElementsByTagName() renvoie un noeud
dom qui est un sous-arbre et toxml() renvoie la chaine xml
correspondant au sous-arbre.
En dom, les noeuds textes sont des noeuds à part entière et il faut
donc explicitement récupérer le bon noeud texte que tu désires,
suivant tes données, avec par exemple :
print node.childNodes[0].nodeValue
Merci, c'est ce qui fonctionne.
Au fur et à mesure que je me documente, il semblerait qu'il soit plus
pertinent d'utiliser l'API SAX de python.
Tout dépend du problème. Sax est évenementiel et est très performant
pour une transformation en 1 passage. Mais parfois il est utile de
travailler sur des transformations trop compliquées à faire en sax mais
pas en dom.
for node in dom.getElementsByTagName('titre'): print node.toxml() j'obtiens le noeud en entier par exemple : <titre>Mon titre</titre>.
C'est le comportement normal, getElementsByTagName() renvoie un noeud dom qui est un sous-arbre et toxml() renvoie la chaine xml correspondant au sous-arbre.
En dom, les noeuds textes sont des noeuds à part entière et il faut donc explicitement récupérer le bon noeud texte que tu désires, suivant tes données, avec par exemple :
print node.childNodes[0].nodeValue
Merci, c'est ce qui fonctionne. Au fur et à mesure que je me documente, il semblerait qu'il soit plus pertinent d'utiliser l'API SAX de python.
Tout dépend du problème. Sax est évenementiel et est très performant pour une transformation en 1 passage. Mais parfois il est utile de travailler sur des transformations trop compliquées à faire en sax mais pas en dom.
Le but est de convertir un XML en SQL.
Alors je pense que Sax est plus adapté aussi.
Merci. Rémi.
remi
Bonjour,
Tout dépend du problème. Sax est évenementiel et est très performant pour une transformation en 1 passage.
C'est ça. Bon, j'ai eu du mal à voir le fonctionnement de DOM avec Python, je vais me coller à SAX. Toutes suggestions sont les bienvenues! ;-) Merci. Rémi.
Bonjour,
Tout dépend du problème. Sax est évenementiel et est très performant
pour une transformation en 1 passage.
C'est ça. Bon, j'ai eu du mal à voir le fonctionnement de DOM avec
Python, je vais me coller à SAX. Toutes suggestions sont les bienvenues! ;-)
Merci.
Rémi.
Tout dépend du problème. Sax est évenementiel et est très performant pour une transformation en 1 passage.
C'est ça. Bon, j'ai eu du mal à voir le fonctionnement de DOM avec Python, je vais me coller à SAX. Toutes suggestions sont les bienvenues! ;-) Merci. Rémi.