【问题标题】:How to process xml response from flickr如何处理来自 flickr 的 xml 响应
【发布时间】:2016-04-06 14:50:25
【问题描述】:
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))

这个小脚本的想法是从 Flickr 获取 xml 响应,然后使用 xsl 文件进一步处理它。

我想转换r 对象(类型为lxml.etree._Element) 到xml_inputlxml.etree._ElementTree 类型)。

我使用了tree = ET.ElementTree(r),但结果类型为xml.etree.ElementTree.ElementTree

我看到这并不完全相同,但我不明白其中的区别。

r应该如何转换为xml_input

【问题讨论】:

    标签: python xml xslt lxml flickr


    【解决方案1】:

    代码创建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'>
    

    【讨论】:

      猜你喜欢
      • 2011-08-22
      • 2020-04-05
      • 1970-01-01
      • 2017-02-25
      • 1970-01-01
      • 2014-08-29
      • 2016-09-30
      • 2021-04-05
      • 1970-01-01
      相关资源
      最近更新 更多