我正在使用python 3.6,并希望将一些信息从我的.x81文件(看起来像xml)转换/写入为.txt文件。
我不断遇到“需要一个类似字节的对象,而不是'ElementTree'”的问题。但是我无法在线找到解决方案。
这是我的代码:
from xml.etree import cElementTree as ET
xmlstr = ET.parse('06 MSR Technik.x81')
GAEB = ET.fromstring(xmlstr)
for GAEB in list(Award):
Ordnungszahl = Award.find('RNoPart').text
Pos = Award.find('Qty').text
text = Award.find('Description').text
print('Ordnungszahl: %s; Pos: %s; text: %s' % (Ordnungszahl, Pos, text))
这是问题所在:
C:\ProgramData\Anaconda3\python.exe "C:/Users/Amy_6/Desktop/Uni/Python/Probeprojekt/XML to TXT/XmlToTxt.py"
Traceback (most recent call last):
File "C:/Users/Amy_6/Desktop/Uni/Python/Probeprojekt/XML to TXT/XmlToTxt.py", line 4, in <module>
GAEB = ET.fromstring(xmlstr)
File "C:\ProgramData\Anaconda3\lib\xml\etree\ElementTree.py", line 1314, in XML
parser.feed(text)
TypeError: a bytes-like object is required, not 'ElementTree'
Process finished with exit code 1
答案 0 :(得分:1)
根据您的代码,ET.parse()
已经读取了xml文件并转换为Element
。您无需再次使用ET.fromstring()
来创建Element
。
fromestring()
将XML从字符串直接解析为Element
。例如,ET.fromstring('<?xml?......>')