使用python创建/解析xml文件

使用python创建/解析xml文件,python,xml,Python,Xml,我一直在网上阅读,发现了这个解决方案,但不确定它是否仍然是一个相关的解决方案,因为这篇文章已经5年了。我猜Python在过去的5年里进化了很多 我有一个类,它有几个属性。在本例中,一个属性名是字符串,然后是另一个名为items的属性,它是字符串列表。我希望将这些数据写入xml,然后在运行工具时能够解析并读回以重新填充变量团队。我希望它生成的xml具有漂亮的间距和缩进 我可以用python中的标准库创建所需的xml并解析xml文件吗?或者我需要单独下载,你有什么建议吗 Teams =[] Team

我一直在网上阅读,发现了这个解决方案,但不确定它是否仍然是一个相关的解决方案,因为这篇文章已经5年了。我猜Python在过去的5年里进化了很多

我有一个类,它有几个属性。在本例中,一个属性名是字符串,然后是另一个名为items的属性,它是字符串列表。我希望将这些数据写入xml,然后在运行工具时能够解析并读回以重新填充变量团队。我希望它生成的xml具有漂亮的间距和缩进

我可以用python中的标准库创建所需的xml并解析xml文件吗?或者我需要单独下载,你有什么建议吗

Teams =[]
Teams.append(Team( name="Zebras" items=[]))
Teams.append(Team( name="Cobras" items=[]))
Teams.append(Team( name="Tigers" items=[]))
Teams.append(Team( name="Lizards" items=[]))
Xml输出示例

<?xml version="1.0" ?>
<teams>
  <team name="cobras">
    <item name="teapot001"/>
    <item name="teapot002"/>
    <item name="teapot003"/>
  </team>
  <team name="lizards">
    <item name="teapot001"/>
    <item name="teapot002"/>
    <item name="teapot003"/>
  </team>
</teams>

使用xml库中的ElementTree或minidom,您可以在本文中使用此答案:

例如:

import xml.dom.minidom

xml = xml.dom.minidom.parse(xml_fname)
# or xml.dom.minidom.parseString(xml_string)
pretty_xml_as_string = xml.toprettyxml()

有关更多选项,请使用或参阅。创建和解析xml是不同的问题,最好使用不同的工具来处理。您可以使用ElementTree、lxml等创建文档。。。或者您可以使用xml模板工具,如jinga2。对于简单的xml文档,通常只是手动编写标记。我不确定这是否仍然是一个相关的解决方案,因为这篇文章已经发表了5年。链接问题的公认答案仍然可以。API中没有任何重大更改。帖子中的答案没有说明不包含空格或空格的格式indents@JokerMartini我相信您可以使用toprettyxml方法: