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

📅  最后修改于: 2022-05-13 01:54:50.056000             🧑  作者: Mango

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

在本文中,任务是在Python中将给定列表转换为 XML。但首先,让我们讨论什么是 XML?

它也可以是定义一组规则的术语,用于以人类可读和机器可读的格式对文档进行编码。 XML 的设计目标专注于整个网络的简单性、通用性和实用性。它是一种文本格式,通过 Unicode 为各种人类语言提供强大的支持。

您可以参考文章使用Python创建 XML 文档以获取更多信息。

方法一:使用元素树

Python具有一个内置库 ElementTree,它具有读取和操作 XML(以及其他类似结构的文件)的函数。 ElementTree 将整个 XML 文档表示为有助于执行操作的树。该元素代表此树中的单个节点。整个文档的读取和写入是在 ElementTree 级别完成的。与一个 XML 元素及其子元素的交互是在元素级别完成的。参考:用Python修改 XML 文件

import xml.etree.ElementTree as ET

XML 文档具有称为元素的部分,由开始和结束标记定义。标签是一种以 < 开头并以 > 结尾的标记结构。

使用的方法:

  1. 使用 ElementTree 插入列表项
  2. 将根元素创建为“userconfig”
  3. 创建子元素
  4. 将列表条目插入子元素
  5. 将树写入 XML 文件
Python3
# Firstly we have to import 'xml.etree.ElementTree' for creating a subtree
import xml.etree.ElementTree as ET
  
users_list = ["GeeksForGeeks", "Arka", "Computer Science", "Engineering", "Portal"]
  
def create_xml():
  
        # we make root element
        usrconfig = ET.Element("usrconfig")
  
        # create sub element
        usrconfig = ET.SubElement(usrconfig, "usrconfig")
  
        # insert list element into sub elements
        for user in range(len( users_list)):
  
                usr = ET.SubElement(usrconfig, "usr")
                usr.text = str(users_list[user])
  
        tree = ET.ElementTree(usrconfig)
  
        # write the tree into an XML file
        tree.write("Output.xml", encoding ='utf-8', xml_declaration = True)
  
create_xml()


Python3
from xml.dom import minidom 
import os 
  
users_list = ["GeeksForGeeks", "Arka", "Computer Science", "Engineering", "Portal"]
  
# create file
root = minidom.Document() 
  
# creat root element
xml = root.createElement('root') 
root.appendChild(xml) 
  
for user in range(len( users_list)):
  
    # create child element
    productChild = root.createElement('product'+ str(user))
  
    # insert user data into element
    productChild.setAttribute('list', users_list[user] ) 
    xml.appendChild(productChild) 
  
xml_str = root.toprettyxml(indent ="\t") 
  
# save file
save_path_file = "gfg.xml"
  
with open(save_path_file, "w") as f: 
    f.write(xml_str)


输出:

方法二:使用xml.dome

xml.dom.minidom 模块为创建 DOM 树提供了一个简单的解析器。 DOM(文档对象模型)可以是来自 W3C 即万维网联盟的跨语言 API,用于访问和修改 XML 文档。 Python使您能够在 xml.dom.minidom 的帮助下解析 XML 文件,这是 DOM 接口的最小实现。它比完整的 DOM API 更简单,将被视为更小。

有关给定库的进一步参考,请访问使用Python中的 Minidom 解析 XML。

蟒蛇3

from xml.dom import minidom 
import os 
  
users_list = ["GeeksForGeeks", "Arka", "Computer Science", "Engineering", "Portal"]
  
# create file
root = minidom.Document() 
  
# creat root element
xml = root.createElement('root') 
root.appendChild(xml) 
  
for user in range(len( users_list)):
  
    # create child element
    productChild = root.createElement('product'+ str(user))
  
    # insert user data into element
    productChild.setAttribute('list', users_list[user] ) 
    xml.appendChild(productChild) 
  
xml_str = root.toprettyxml(indent ="\t") 
  
# save file
save_path_file = "gfg.xml"
  
with open(save_path_file, "w") as f: 
    f.write(xml_str) 

输出: