提问人:John 提问时间:11/30/2022 最后编辑:nwellnhofJohn 更新时间:12/1/2022 访问量:1740
'<?xml version=“1.0” encoding=“utf-8”?>' 在将 xml 编码为字符串 python 后消失
'<?xml version="1.0" encoding="utf-8"?>' disappears after encoding xml to string python
问:
在我的 xml 文件中,我一开始就有。但是如果我将其编码为字符串,它就会消失。我的意思是我的字符串在开始时不再有它了。我以为我可以简单地将它插入我的字符串中,就像在下面的代码中一样(打印时有效),但是当我想再次将字符串保存为xml并在笔记本电脑上打开它时,就不再存在了。<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
import xml.etree.ElementTree as ET
tree = ET.parse(r'someData.xml')
root = tree.getroot()
xml_str = ET.tostring(root, encoding='unicode')
xml_str = '<?xml version="1.0" encoding="utf-8"?>' + xml_str
有没有人知道如何在不丢失的情况下将 xml 编码为字符串,或者如何在不丢失的情况下将字符串保存为 xml?我的目标是将它包含在我导出的 xml 中。先谢谢你!!<?xml version="1.0" encoding="utf-8"?>
答:
1赞
John
12/1/2022
#1
要使其更明显,请执行以下操作:
在我保存文件之前,所以:
tree = ET.ElementTree(ET.fromstring(xml_str))
tree.write(open('test2.xml', 'a'), encoding='unicode')
但是现在,我像这样保存它,这样我就不会错过 xml 文件开头的声明:
tree = ET.ElementTree(ET.fromstring(xml_str))
tree.write(open('test.xml', 'wb'), encoding="utf-8", xml_declaration=True)
评论
xml_declaration=True
应该工作。<?xml version=\'1.0\' encoding=\'cp1252\'?>\n
<?xml version="1.0" encoding="utf-8"?>
UTF-8
ET.toString()
tree = ET.ElementTree(ET.fromstring(`xml_str)) tree.write(open('test2.xml', 'a'), encoding='unicode')
ET.write(..., encoding='UTF-8')