欢迎访问宙启技术站
智能推送

使用xml.etree.cElementTree()生成具有层级结构的XML文件

发布时间:2023-12-16 08:08:36

XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,具有层级结构。在Python中,我们可以使用xml.etree.cElementTree来生成具有层级结构的XML文件。下面是一个使用xml.etree.cElementTree生成XML文件的例子:

首先,我们需要导入xml.etree.cElementTree模块并创建一个根元素。

import xml.etree.cElementTree as ET

# 创建根元素
root = ET.Element("catalog")

接下来,我们可以添加子元素到根元素中。

# 创建子元素
book1 = ET.SubElement(root, "book")
book2 = ET.SubElement(root, "book")

# 添加子元素的属性
book1.set("id", "1")
book2.set("id", "2")

然后,我们可以给子元素添加子元素或文本。

# 给book1添加子元素
title1 = ET.SubElement(book1, "title")
title1.text = "Python Programming"

author1 = ET.SubElement(book1, "author")
author1.text = "John Doe"

year1 = ET.SubElement(book1, "year")
year1.text = "2022"

# 给book2添加子元素
title2 = ET.SubElement(book2, "title")
title2.text = "Data Science"

author2 = ET.SubElement(book2, "author")
author2.text = "Jane Smith"

year2 = ET.SubElement(book2, "year")
year2.text = "2021"

最后,我们可以使用ET.ElementTree将根元素转换为一个ElementTree对象,并将其写入XML文件。

# 创建一个ElementTree对象
tree = ET.ElementTree(root)

# 将ElementTree对象写入XML文件
tree.write("catalog.xml")

完整的代码如下:

import xml.etree.cElementTree as ET

# 创建根元素
root = ET.Element("catalog")

# 创建子元素
book1 = ET.SubElement(root, "book")
book2 = ET.SubElement(root, "book")

# 添加子元素的属性
book1.set("id", "1")
book2.set("id", "2")

# 给book1添加子元素
title1 = ET.SubElement(book1, "title")
title1.text = "Python Programming"

author1 = ET.SubElement(book1, "author")
author1.text = "John Doe"

year1 = ET.SubElement(book1, "year")
year1.text = "2022"

# 给book2添加子元素
title2 = ET.SubElement(book2, "title")
title2.text = "Data Science"

author2 = ET.SubElement(book2, "author")
author2.text = "Jane Smith"

year2 = ET.SubElement(book2, "year")
year2.text = "2021"

# 创建一个ElementTree对象
tree = ET.ElementTree(root)

# 将ElementTree对象写入XML文件
tree.write("catalog.xml")

运行该代码后,会生成一个名为catalog.xml的XML文件。其内容如下:

<catalog>
    <book id="1">
        <title>Python Programming</title>
        <author>John Doe</author>
        <year>2022</year>
    </book>
    <book id="2">
        <title>Data Science</title>
        <author>Jane Smith</author>
        <year>2021</year>
    </book>
</catalog>

通过这个例子,我们可以看到如何使用xml.etree.cElementTree生成具有层级结构的XML文件。