当我解析xml文件,然后将结果写入输出文件时,只要有“/>;”,就会添加一个空格在原始文件中。有没有什么方法可以阻止它被创建
我编写了一些python代码来更新xml文件中的几个字段,并认为一切正常,但在原始文件和更新文件之间运行sdiff之后,我注意到更新的不仅仅是所需的行。任何有“/>;”在xml文件中,它的前缀有一个空格“/>;”。我注释掉了除parse命令和write命令之外的所有代码,并且能够验证parse或write命令是否导致了问题
选择源XML文件的内容:更新的XML文件:
<QcfName/> <QcfName />
<Icf/> <Icf />
<Bidirectional/> <Bidirectional />
代码(注释掉所有其他代码):
tree = ET.parse(inFile)
tree.write(outFile)
我不需要任何带有“/>;”的条目更新以包含空间“/>;”
我认为这样做的唯一方法是重新定义
ET._serialize_xml
并删除中的硬编码空间:基本上只需从ElementTree复制整个函数,删除空格,并用
ET
更新任何函数/方法/类引用(比如Comment
变成ET.Comment
,_escape_cdata(text)
变成ET._escape_cdata(text)
,等等)但它并不漂亮,你还得保留一些额外的东西
示例
XML输入(Input.XML)
Python
XML输出(Output.XML)
相关问题 更多 >
编程相关推荐