如何用python生成列表的XML?

2024-10-01 17:37:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我只想用列表中的元素生成一个XML,但是生成一个空白的XML似乎效果很差我需要帮助

import xml.etree.cElementTree as ET

lista = [1,2,3,4,5,6,7,"final"]

for i in range(len(lista)):

    if i == 0 :
        root = ET.Element("{}".format(lista[i]))
    else:
        doc = ET.SubElement(root, "doc")
        nodo1 = ET.SubElement(doc, "nodo")

ET.SubElement(doc, "nodo")

arbol = ET.ElementTree(root)

arbol.write("path")

Tags: import元素列表docrootxml空白et
1条回答
网友
1楼 · 发布于 2024-10-01 17:37:57

根据您的评论,以下是您如何实现以下目标:

import xml.etree.cElementTree as ET

lista = [1,2,3,4,5,6,7,"final"]

for i in range(len(lista)):
    # set up a specific attribute based on the content of lista
    attrib = dict(lista=str(lista[i]))

    if i == 0 :
        root = ET.Element("{}".format(lista[i]), attrib)
        prior = root
    else:
        prior = ET.SubElement(prior, "doc", attrib)

ET.SubElement(prior, "nodo")
ET.SubElement(prior, "nodo")

arbol = ET.ElementTree(root)
arbol.write('./result.xml')

技巧是将上一次迭代的子元素存储在prior中,将下一个子元素创建为prior的子元素,然后再次将此元素设置为prior

result.xml文件:

<1 lista="1">
    <doc lista="2">
        <doc lista="3">
            <doc lista="4">
                <doc lista="5">
                    <doc lista="6">
                        <doc lista="7">
                            <doc lista="final">
                                <nodo />
                                <nodo />
                            </doc>
                        </doc>
                    </doc>
                </doc>
            </doc>
        </doc>
    </doc>
</1>

相关问题 更多 >

    热门问题