使用python创建/解析xml文件

使用python创建/解析xml文件

问题描述:

我一直在网上阅读,并遇到这个解决方案Creating a simple XML file using python,但不知道自从这篇文章是5岁以后它是否仍然是一个相关的解决方案。 Python我猜在过去的5年里发展很快。使用python创建/解析xml文件

我有一个有几个属性的类。在这种情况下,属性名称是一个字符串,然后是另一个属性,称为项目,它是一个字符串列表。我想将这些数据写入一个xml,然后再解析,当我运行一个工具时,将它读回来重新填充变量Teams。我想要它生成的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> 
+0

我们e ['xml.etree.ElementTree'](https://docs.python.org/2/library/xml.etree.elementtree.html),或者查看[Python wiki](https://wiki.python。 org/moin/PythonXml)以获取更多选项。 – augurar

+0

创建和解析xml是不同的问题,可能最好使用不同的工具处理。您可以使用ElementTree,lxml等创建文档...或者您可以使用xing模板工具,如jinga2。对于简单的xml文档,通常只需手动编写标签。 – tdelaney

+0

*不确定自从该职位5岁以来它是否仍然是相关解决方案*。关联问题的答案仍然可以。 API中没有任何重大变化。 – mzjn

使用的ElementTree或XML库minidom命名,你可以SE这个答案在这个帖子:

How do I parse XML in Python?

例如:

import xml.dom.minidom 

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

在帖子中的答案没有解决不包含任何空格或缩进的格式 – JokerMartini

+0

@JokerMartini我相信你可以使用toprettyxml方法:http://*.com/questions/749796/pretty-printing-xml-in -蟒蛇 –