使用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文件。
