📌  相关文章
📜  如何在Python中将列表转换为 XML?(1)

📅  最后修改于: 2023-12-03 15:08:57.084000             🧑  作者: Mango

如何在Python中将列表转换为 XML?

在Python中,我们可以使用标准库中的xml.etree.ElementTree模块来将列表转换为XML格式。以下是一些实现方法的示例:

示例1:使用ElementTree模块
import xml.etree.ElementTree as ET

my_list = ["apple", "banana", "orange", "peach"]

root = ET.Element("fruits")
for item in my_list:
    ET.SubElement(root, "fruit", name=item)

xml_string = ET.tostring(root)
print(xml_string.decode())

该示例首先初始化一个列表,然后声明一个XML根元素。然后循环遍历列表,为每个项目创建一个带有“名称”属性的XML元素。最后,使用tostring函数将XML树转换为字符串并打印。运行程序将产生以下输出:

<fruits><fruit name="apple" /><fruit name="banana" /><fruit name="orange" /><fruit name="peach" /></fruits>
示例2:使用xml.dom.minidom模块
import xml.dom.minidom

my_list = ["apple", "banana", "orange", "peach"]

impl = xml.dom.minidom.getDOMImplementation()
doc = impl.createDocument(None, "fruits", None)
for item in my_list:
    root = doc.createElement("fruit")
    root.setAttribute("name", item)
    doc.documentElement.appendChild(root)

xml_string = doc.toxml()
print(xml_string)

该示例使用xml.dom.minidom模块来创建XML文档。它初始化一个列表并使用getDOMImplementation函数获取XML实现,然后使用createDocument函数创建一个文档根元素。接下来循环遍历列表并为每个项目创建一个带有“名称”属性的XML元素。最后,使用toxml函数将XML文档转换为字符串并打印。运行程序将产生以下输出:

<?xml version="1.0" ?><fruits><fruit name="apple"/><fruit name="banana"/><fruit name="orange"/><fruit name="peach"/></fruits>
示例3:使用xml.etree.ElementTree.Element函数编写递归函数
import xml.etree.ElementTree as ET

def list_to_xml(lst, parent):
    for item in lst:
        if isinstance(item, list):
            list_to_xml(item, parent)
        else:
            ET.SubElement(parent, "item").text = str(item)

my_list = ["apple", "banana", ["orange", "peach"]]

root = ET.Element("root")
list_to_xml(my_list, root)

xml_string = ET.tostring(root)
print(xml_string.decode())

该示例定义了一个名为list_to_xml的递归函数,该函数将给定的列表转换为XML格式。该函数遍历列表中的所有项,并根据其类型创建XML元素。对于子列表,该函数调用自身。最后,该函数将XML元素添加到给定的父元素中。该程序运行将产生以下输出:

<root><item>apple</item><item>banana</item><item>orange</item><item>peach</item></root>

这就是在Python中将列表转换为XML格式的几种方法。无论您采用哪种方法,都可以将列表转换为可读性更好的XML格式,并与各种XML处理工具一起使用。