2016-11-01 8 views
0

En essayant d'imprimer la valeur d'un seul champ d'un arbre XML, voici l'arbre XML (par exemple), celui que je reçois quand je le demandeComment extraire une valeur d'une URL xml en utilisant xml.etree

<puco> 
    <resultado>OK</resultado> 
    <coberturaSocial>O.S.P. TIERRA DEL FUEGO(IPAUSS)</coberturaSocial> 
    <denominacion>DAMIAN GUTIERREZ DEL RIO</denominacion> 
    <nrodoc>32443324</nrodoc> 
    <rnos>924001</rnos> 
    <tipodoc>DNI</tipodoc> 
</puco> 

maintenant, je veux juste imprimer la valeur « coberturaSocial », ici la demande que j'ai dans mon views.py:

def get(request): 
    r = requests.get('https://sisa.msal.gov.ar/sisa/services/rest/puco/38785898') 
    dom = r.content 
    asd = etree.fromstring(dom) 

Si j'imprimer « asd » Je reçois cette erreur: la vue n'a pas renvoyé un objet HttpResponse. Il a renvoyé None à la place. et aussi dans la console je reçois ce Je veux juste imprimer coberturaSocial, s'il vous plaît aider, nouveau dans l'analyse XML!

Répondre

0

Vous devez extraire le contenu de la balise, puis retourner enveloppé dans une réponse, comme ceci:

return HttpResponse(asd.find('coberturaSocial').text) 
+0

merci! en fait, je ne suis pas très familiarisé avec xml et django, je pourrais l'obtenir Alex;) – LeandroDiaz96

0

Je devine que etree est import xml.etree.ElementTree as etree

Vous pouvez utiliser:

text = r.content 
dom = etree.fromstring(text) 
el = dom.find('coberturaSocial') 
el.text # this is where the string is 
+0

désolé, ça ne marche pas, je reçois la même erreur :( – LeandroDiaz96

+0

où exactement avez-vous eu cette erreur? le code actuel ne retourne pas/imprime quoi que ce soit Qu'avez-vous ajouté? – Dekel

+0

j'avais une impression là, maintenant je l'efface ... ce n'était pas cette erreur – LeandroDiaz96