【发布时间】:2011-08-02 15:55:41
【问题描述】:
我有一个显示一些值的 HTML 页面。我还有一个小应用程序,可以显示我拥有的其他一些页面的数据,但这些其他页面是 JSON,而不是 HTML。 我想从 HTML 页面使用这些值,转换为 JSON,然后输出。
我想这样做的原因是我可以简单地重用我的代码,只需更改 URL,甚至动态创建它。
我使 HTML 页面尽可能简单,以便去除所有垃圾,使正则表达式更基本。
这里是 HTML:
<div class="BlockA">
<h4>BlockA</h4>
<div class="name">John Smith</div>
<div class="number">2</div>
<div class="name">Paul Peterson</div>
<div class="number">14</div>
</div>
<div class="BlockB">
<h4>BlockB</h4>
<div class="name">Steve Jones</div>
<div class="number">5</div>
</div>
这两个块的元素数量会有所不同,具体取决于几个因素。
这是我的蟒蛇:
def index(request, toGet="xyz"):
file = urllib2.urlopen("http://www.mysite.com/mypage?data="+toGet)
data = file.read()
dom = parseString(data)
rows = dom.getElementsByTagName("BlockA")[0]
readIn = ""
for row in rows:
readIn = readIn+json.dumps(
{'name': row.getAttribute("location"),
'number': row.getAttribute("number")},
sort_keys=True,
indent=4)+","
response_generator = ( "["+readIn[:-1]+"]" )
return HttpResponse(response_generator)
所以这基本上是读取值(实际上,在这种情况下,源是 XML),循环它们,并输出所有值。
如果有人能指出我正确的方向,将不胜感激。例如,读取“BlockA”等标签,然后读取“name”和“number”标签。
谢谢。
【问题讨论】: