如何使用“通常”自关闭/标头标签编写XML?

时间:2018-02-15 07:59:24

标签: python xml python-2.7 formatting

这是我的代码:

from xml.dom import minidom as md
doc  = md.parse('file.props')

# operations with doc

xml_file = open('file.props', "w")
doc.writexml(xml_file, encoding="utf-8")
xml_file.close()

我解析XML,我做一些操作,而不是打开和写入它。但是,例如,如果在我的文件中得到:

<MY_TAG />
       ^

重写为:

<MY_TAG/>
       ^

我知道这看起来似乎无关紧要,但我的文件会不断受到版本控制GIT的监控,即每次写入时该行都是“不同的”。

与标题相同:

<?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

它变成了:

<?xml version="1.0" encoding="utf-8"?><Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

哪个很烦人。有线索吗?

1 个答案:

答案 0 :(得分:1)

通过解析和序列化保留XML格式的怪癖是非常不可能的。如果您需要进行文本级比较,唯一的方法是规范化您正在比较的格式(有各种XML规范化工具)。

原则上你可以配置git使用一个支持XML的diff工具进行比较,但是请不要问我详细信息,这不是我自己做过的事情。我一直生活在一个非常有效的事实中。