2016-04-06 2 views
1
import flickrapi 
from xml.etree import ElementTree as ET 
from lxml import etree 

flickr = flickrapi.FlickrAPI(api_key,secret=api_secret) 
r = flickr.photos_search(tags='e-waste', has_geo="1", per_page='100') 
tree = ET.ElementTree(r) 

xml_input = etree.parse("response_clean.xml") 
transform = etree.XSLT(xslt_root) 
links = str(transform(xml_input)) 

Идея этого маленького скрипта - получить ответ xml от Flickr, а затем использовать файл xsl для дальнейшей обработки.Как обработать xml-ответ от flickr

Я хочу, чтобы преобразовать r объект (который имеет тип lxml.etree._Element) к xml_input (типа lxml.etree._ElementTree).

Я использовал tree = ET.ElementTree(r), но результат был типа xml.etree.ElementTree.ElementTree.

Я вижу, что это не совсем то же самое, но я не понимаю разницы.

Как следует r быть преобразованным в xml_input?

ответ

0

Код создает xml.etree.ElementTree.ElementTree, потому что ET в соответствующих import ссылках справка xml.etree.ElementTree. Вместо этого вы должны были использовать etree.ElementTree, который был импортирован из lxml:

>>> from xml.etree import ElementTree as ET 
>>> from lxml import etree 
>>> raw ='''<root></root>''' 
>>> r = etree.fromstring(raw) 
>>> root = etree.ElementTree(r) 
>>> type(r) 
<type 'lxml.etree._Element'> 
>>> type(root) 
<type 'lxml.etree._ElementTree'> 
Смежные вопросы