У меня есть служба RESTful на другом сервере в Интернете. Я отправляю этот запрос, который возвращает один элемент XML с несколькими атрибутами.
У меня также есть другая функция python, которая использует локально хранимый XML, и когда я предоставляю ему параметр, он будет перебирать все элементы и возвращать только тот элемент XML, который соответствует этому параметру, то есть mysite / search / 123.
Я могу вывести этот штраф, используя:
from xml.dom.minidom import parseString
import json
import urllib2
from django.http import HttpResponse
def index(request, number="1"):
#file = urllib2.urlopen('myfile.xml')
file = open('myfile.xml','r')
data = file.read()
dom = parseString(data)
rows = dom.getElementsByTagName("root")[0].getElementsByTagName("subroot")[0].getElementsByTagName("theData")
for row in rows:
return HttpResponse(json.dumps({'name':row.getAttribute("name"),'address': row.getAttribute("address"), 'phone': row.getAttribute("phone")}, sort_keys=True, indent=4))
Обратите внимание, как я использую row
в цикле for, а затем обращаюсь к атрибутам, используя row.getAttribute()
. Если у меня есть только 1 элемент XML, в цикле нет необходимости, поэтому нет итерации, поэтому нет объекта row
для использования метода getAttribute()
.
Я просто хочу получить этот фрагмент данных. Может ли кто-нибудь помочь?
PS, если я попытаюсь выполнить цикл для этих отдельных данных XML, я получу сообщение об ошибке:
TypeError: Iteration over a non-sequence
.