Bonjour,
J'ai une question toute bête sur l'utilisation de l'API minidom de python.
J'arrive très bien à récupérer l'attribut d'une balise mais ça se gâte
lorsque je cherche à récupérer la valeur d'une balise.
Existe-t-il une méthode simple ? Merci par avance.
docXML = minidom.parse('monfichier.xml')
for node in docXML.getElementsByTagName('item'):
# Je récupère bien la valeur de l'attribut
if node.getAttribute('code') == '456':
print "OK"
print node.getElementsByTagName('price')
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
Pierrot wrote:
Bonjour, J'ai une question toute bête sur l'utilisation de l'API minidom de python. J'arrive très bien à récupérer l'attribut d'une balise mais ça se gâte lorsque je cherche à récupérer la valeur d'une balise. Existe-t-il une méthode simple ? Merci par avance.
docXML = minidom.parse('monfichier.xml') for node in docXML.getElementsByTagName('item'): # Je récupère bien la valeur de l'attribut if node.getAttribute('code') == '456': print "OK" print node.getElementsByTagName('price')
Bonjour,
dans ton code, quand tu écris node.getElementsByTagName('price'), tu récupères tous les fils qui ont pour nom 'price' dans une liste. Dans ton cas la liste à un seul élément.
Tu peux faire n_price = node.getElementsByTagName('price')[0] pour avoir l'élément en dom du noeud 'price'.
Si tu veux la "valeur", il faut récupérer le fils de ce noeud qui est un noeud texte et récupérer le contenu de ce noeud texte. Dans ton cas : n_price.firstChild.data
En plus simple je te conseille une autre librairie genre libxml2...
Jerome
Pierrot wrote:
Bonjour,
J'ai une question toute bête sur l'utilisation de l'API minidom de python.
J'arrive très bien à récupérer l'attribut d'une balise mais ça se gâte
lorsque je cherche à récupérer la valeur d'une balise.
Existe-t-il une méthode simple ? Merci par avance.
docXML = minidom.parse('monfichier.xml')
for node in docXML.getElementsByTagName('item'):
# Je récupère bien la valeur de l'attribut
if node.getAttribute('code') == '456':
print "OK"
print node.getElementsByTagName('price')
Bonjour,
dans ton code, quand tu écris node.getElementsByTagName('price'), tu
récupères tous les fils qui ont pour nom 'price' dans une liste. Dans
ton cas la liste à un seul élément.
Tu peux faire n_price = node.getElementsByTagName('price')[0] pour avoir
l'élément en dom du noeud 'price'.
Si tu veux la "valeur", il faut récupérer le fils de ce noeud qui est un
noeud texte et récupérer le contenu de ce noeud texte. Dans ton cas :
n_price.firstChild.data
En plus simple je te conseille une autre librairie genre libxml2...
Bonjour, J'ai une question toute bête sur l'utilisation de l'API minidom de python. J'arrive très bien à récupérer l'attribut d'une balise mais ça se gâte lorsque je cherche à récupérer la valeur d'une balise. Existe-t-il une méthode simple ? Merci par avance.
docXML = minidom.parse('monfichier.xml') for node in docXML.getElementsByTagName('item'): # Je récupère bien la valeur de l'attribut if node.getAttribute('code') == '456': print "OK" print node.getElementsByTagName('price')
Bonjour,
dans ton code, quand tu écris node.getElementsByTagName('price'), tu récupères tous les fils qui ont pour nom 'price' dans une liste. Dans ton cas la liste à un seul élément.
Tu peux faire n_price = node.getElementsByTagName('price')[0] pour avoir l'élément en dom du noeud 'price'.
Si tu veux la "valeur", il faut récupérer le fils de ce noeud qui est un noeud texte et récupérer le contenu de ce noeud texte. Dans ton cas : n_price.firstChild.data
En plus simple je te conseille une autre librairie genre libxml2...
Jerome
Pierrot
Pierrot wrote:
Bonjour, J'ai une question toute bête sur l'utilisation de l'API minidom de python. J'arrive très bien à récupérer l'attribut d'une balise mais ça se gâte lorsque je cherche à récupérer la valeur d'une balise. Existe-t-il une méthode simple ? Merci par avance.
docXML = minidom.parse('monfichier.xml') for node in docXML.getElementsByTagName('item'): # Je récupère bien la valeur de l'attribut if node.getAttribute('code') == '456': print "OK" print node.getElementsByTagName('price')
Bonjour,
dans ton code, quand tu écris node.getElementsByTagName('price'), tu récupères tous les fils qui ont pour nom 'price' dans une liste. Dans ton cas la liste à un seul élément.
Tu peux faire n_price = node.getElementsByTagName('price')[0] pour avoir l'élément en dom du noeud 'price'.
Si tu veux la "valeur", il faut récupérer le fils de ce noeud qui est un noeud texte et récupérer le contenu de ce noeud texte. Dans ton cas : n_price.firstChild.data
En plus simple je te conseille une autre librairie genre libxml2...
Jerome
En fait je teste l'élément code = 456 donc je ne récupère qu'un fils. Ta
méthode me convient donc très bien. Je regarderai quand même libxml2. Merci et bonne journée.
Pierrot wrote:
Bonjour,
J'ai une question toute bête sur l'utilisation de l'API minidom de
python.
J'arrive très bien à récupérer l'attribut d'une balise mais ça se gâte
lorsque je cherche à récupérer la valeur d'une balise.
Existe-t-il une méthode simple ? Merci par avance.
docXML = minidom.parse('monfichier.xml')
for node in docXML.getElementsByTagName('item'):
# Je récupère bien la valeur de l'attribut
if node.getAttribute('code') == '456':
print "OK"
print node.getElementsByTagName('price')
Bonjour,
dans ton code, quand tu écris node.getElementsByTagName('price'), tu
récupères tous les fils qui ont pour nom 'price' dans une liste. Dans
ton cas la liste à un seul élément.
Tu peux faire n_price = node.getElementsByTagName('price')[0] pour avoir
l'élément en dom du noeud 'price'.
Si tu veux la "valeur", il faut récupérer le fils de ce noeud qui est un
noeud texte et récupérer le contenu de ce noeud texte. Dans ton cas :
n_price.firstChild.data
En plus simple je te conseille une autre librairie genre libxml2...
Jerome
En fait je teste l'élément code = 456 donc je ne récupère qu'un fils. Ta
méthode me convient donc très bien. Je regarderai quand même libxml2.
Merci et bonne journée.
Bonjour, J'ai une question toute bête sur l'utilisation de l'API minidom de python. J'arrive très bien à récupérer l'attribut d'une balise mais ça se gâte lorsque je cherche à récupérer la valeur d'une balise. Existe-t-il une méthode simple ? Merci par avance.
docXML = minidom.parse('monfichier.xml') for node in docXML.getElementsByTagName('item'): # Je récupère bien la valeur de l'attribut if node.getAttribute('code') == '456': print "OK" print node.getElementsByTagName('price')
Bonjour,
dans ton code, quand tu écris node.getElementsByTagName('price'), tu récupères tous les fils qui ont pour nom 'price' dans une liste. Dans ton cas la liste à un seul élément.
Tu peux faire n_price = node.getElementsByTagName('price')[0] pour avoir l'élément en dom du noeud 'price'.
Si tu veux la "valeur", il faut récupérer le fils de ce noeud qui est un noeud texte et récupérer le contenu de ce noeud texte. Dans ton cas : n_price.firstChild.data
En plus simple je te conseille une autre librairie genre libxml2...
Jerome
En fait je teste l'élément code = 456 donc je ne récupère qu'un fils. Ta
méthode me convient donc très bien. Je regarderai quand même libxml2. Merci et bonne journée.