Экземпляр ElementTree не имеет атрибута fromstring. Итак, что я сделал не так? - PullRequest
5 голосов
/ 03 февраля 2011

Я пытаюсь открыть и разобрать HTML.Пока все в порядке, я могу открыть исходный код и напечатать его, например.Но когда дело доходит до разбора, я застрял с "Экземпляр ElementTree не имеет атрибута" fromstring ""

, это мой Django view.py код:

from django.template import loader, Context
from django.http import HttpResponse
import urllib
from xml.etree.ElementTree import ElementTree

def transform (request):
  opener = urllib.FancyURLopener({})
  f = opener.open("http://www.google.com/")
  r = f.read()
  f.close()
  tree = ElementTree()
  tree.fromstring(r)
  p = tree.find("body/h1")
  t = loader.get_template("transform.html")
  c = Context({'neco': p })
  return HttpResponse(t.render(c))

Django Версия: 1.2.4 Python версия: 2.6.5

У кого-нибудь есть идеи, пожалуйста?

1 Ответ

15 голосов
/ 03 февраля 2011

Ваш оператор импорта неверен ... fromstring - это бесплатная функция в модуле xml.etree.ElementTree, а не метод класса xml.etree.ElementTree.ElementTree:

from xml.etree import ElementTree as etree
...
tree = etree.fromstring(r)
...