在python中将xml转换为txt

时间:2018-10-19 16:19:48

标签: xml python-3.x

我正在使用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

1 个答案:

答案 0 :(得分:1)

根据您的代码,ET.parse()已经读取了xml文件并转换为Element。您无需再次使用ET.fromstring()来创建Element

fromestring()将XML从字符串直接解析为Element。例如,ET.fromstring('<?xml?......>')