【发布时间】:2021-10-19 07:16:43
【问题描述】:
我正在做一个自动化,它采用现有的 XML 文件,更改其中一个值并覆盖文件。
我的主要问题是保持原始文件的格式对我来说很重要,而我无法做到这一点,新数据没有换行符,而且都是很长的一行。
<StationConfig StationId="8706" SportType="null" StationType="null" UseMetricSystem="US" LocalTempStorageDrive="C:\" LocalStorageDrive="C:\">
<ClubManagementEnable ClubManagementStaticHours="">false</ClubManagementEnable>
</StationConfig>
我的代码是:
parser = etree.XMLParser()
read = etree.parse("C:\StationConfig.xml", parser=parser).getroot()
read.set("StationId", "8706")
tree = etree.ElementTree(read)
tree.write("C:\devtree\Station.xml", pretty_print=True)
如何在每个元素后添加一个 \n ? 谢谢!
【问题讨论】:
-
借助 Python 3.9 中的 ElementTree,您可以使用
indent()函数进行漂亮打印。 stackoverflow.com/a/63373633/407651。另见stackoverflow.com/questions/28813876/… -
pretty_print 在 3.9.6 中似乎无效
-
ElementTree 没有
pretty_print选项(有这个选项的是lxml)。 -
您可以对两个任务使用 XSLT 转换:(1) 修改任何需要的内容,(2) 缩进输出。
标签: python xml pretty-print