【发布时间】:2011-04-08 18:32:37
【问题描述】:
我在互联网上的另一台服务器上有一个 RESTful 服务。我正在发送一个请求,该请求返回一个带有一些属性的 XML 项。
我还有另一个使用本地存储的 XML 的 python 函数,当我向它提供参数时,它将遍历所有元素,并仅返回与该参数匹配的 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))
注意我如何在 for 循环中使用 row,然后使用 row.getAttribute() 访问属性。如果我只有 1 个 XML 项,则无需循环,因此无需迭代,因此无需使用 row 对象来使用 getAttribute() 方法。
我只想检索这一条数据。有人可以帮忙吗?
PS,如果我尝试对单个 XML 数据执行循环,我会收到一条错误消息:
TypeError: Iteration over a non-sequence.
【问题讨论】: