在Python中使用ElementTree解析XML文件。使用ElementTree解析XML Python
以下是文件:
<?xml version='1.0' encoding='utf-8'?>
<Device fqdm="DESKTOP-4OB3072">
<IP>192.168.203.1</IP>
<MAC>00:00:00:00:00:00</MAC>
</Device>
我收到错误(下)试图解析文件和检索“fqdm”的属性的值时。
“xml.etree.ElementTree.ParseError:垃圾文档元素之后:第2行,列90”
这里是解析代码(请忽略笨文件处理,它将被改变):
with open('received_file.xml', 'a+') as f:
while True:
data = conn.recv(BUFFER_SIZE)
print data
if not data:
f.close()
break
f.write(data)
f.close()
g = open('received_file.xml', 'r+')
tree = ET.parse(g)
root = tree.getroot()
print root
test = root.find('./Device').attrib['fqdm']
print test
sock.close()
这似乎并没有做到这一点,我确信XML是有效的......许多其他帖子表明,没有根元素。这是什么抛出错误? –
如果你打印(root)'',你会看到类似这样的内容:'''。所以,我认为''Device''是根元素。 –
GLR
正确我已经检查过。它仍然抛出那个垃圾错误。我可以把它作为另一个元素,但我宁愿它是一个属性! –