我需要将xml输出到从响应中收到的控制台:
import xml.etree.ElementTree as ET
xml = req.text
result = ET.ElementTree(ET.fromstring(xml))
rough_string = ET.tostring(result, "utf-8")
reparsed = minidom.parseString(rough_string)
print reparsed.toprettyxml(indent="\t")
错误:
AttributeError: 'ElementTree' object has no attribute 'tag'
File "....", line x, in ...
rough_string = ET.tostring(result, "utf-8")
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1126, in tostring
ElementTree(element).write(file, encoding, method=method)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 820, in write
serialize(write, self._root, encoding, qnames, namespaces)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 900, in _serialize_xml
tag = elem.tag
AttributeError: 'ElementTree' object has no attribute 'tag'
您将已经创建的ElementTree对象传递回ElementTree:
result = ET.ElementTree(ET.fromstring(xml))
不要那样做 删除ET.ElementTree()
那里的电话:
result = ET.fromstring(xml)
现在您的ET.tostring()
通话将正常进行。
接下来,我看到您正在req.text
用作XML的源。如果那是一个requests
响应对象,那么这是传递错误的值,您应该req.content
改用它。XML解析器应该传递一个字节字符串,而不是一个unicode
值。然后,解析器将基于XML声明进行解码。它可能适用于仅包含ASCII文本的文档,但是任何包含ASCII字符集以外的文本的文档都会失败。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句