我尝试在大的xml文件中插入标记。我只想改变我插入的那一行,而不是所有其他行。因为逻辑,当我必须插入行,并不是那么简单,我必须使用xml解析器。 但是我使用的解析器也改变了其他行。
原始档案:
<?xml version='1.0' encoding='UTF-8'?>
<tag>
<!-- Comment with ÄÜÖ -->
<name>test</name>
<name></name>
</tag>
所需文件:
<?xml version='1.0' encoding='UTF-8'?>
<tag>
<!-- Comment with ÄÜÖ -->
<name>test</name>
<name>test2</name>
<name></name>
</tag>
例如,lxml显示字符实体,并在保存后自动缩短空标记。
lxml结果:
<tag>
<!-- Comment with ÄÜÖ -->
<name>test</name>
<name>test2</name>
<name />
</tag>
lxml代码:
from lxml import etree
with open('org.xml', 'r') as xml_file:
xml_tree = etree.parse(xml_file)
// adding/manipulating xml
// ...
// saving xml
with open('final.xml', 'wb') as final_file:
final_file.write(etree.tostring(xml_tree))