在lxml的元素生成器中的循环中插入元素列表 [英] insert list of elements in loop inside element builder in lxml

查看:35
本文介绍了在lxml的元素生成器中的循环中插入元素列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个XML主体,该主体是使用 lxml.etree.E 模块构造的.看起来像这样-

I have a XML body which was constructed using lxml.etree.E module. It looks like this -

E.TAGA(
    E.TAGB(
        E.TAGC(
            ...list goes here...
        )
    )
)

这种构造方法不能改变.

This method of construction cannot be altered.

我有一个字符串列表,这些字符串必须在 TAGC 下添加到xml中.(如上所示),每个条目都包裹在另一个标签 TAGD 中.我尝试使用 fromStringlist ,但是它不起作用.请帮忙.希望我的问题清楚.

I have a list of strings ["textA", "textB", "textC"] which have to be added to the xml under TAGC (as shown above) with each entry wrapped inside another tag TAGD. I have tried using fromStringlist but it doesn't work. Please help. Hope my question is clear.

这是最终XML代码应显示的样子-

This is how the final XML code should appear -

E.TAGA(
    E.TAGB(
        E.TAGC(
            E.TAGD(textA),
            E.TAGD(textB),
            E.TAGD(textC)
        )
    )
)

这是所需的输出-

<TAGA>
    <TAGB>
        <TAGC>
            <TAGD>textA</TAGD>
            <TAGD>textB</TAGD>
            <TAGD>textC</TAGD>
        </TAGC>
    </TAGB>
</TAGA>

推荐答案

如下(使用核心python XML库)

below (using core python XML lib)

import xml.etree.ElementTree as ET

d_data = ['T1', 'T2', 'T3']

a = ET.Element('A')
b = ET.SubElement(a, 'B')
c = ET.SubElement(b, 'C')
for text in d_data:
    temp = ET.SubElement(c, 'D')
    temp.text = text
ET.dump(a)

输出

<?xml version="1.0" encoding="UTF-8"?>
<A>
   <B>
      <C>
         <D>T1</D>
         <D>T2</D>
         <D>T3</D>
      </C>
   </B>
</A>

这篇关于在lxml的元素生成器中的循环中插入元素列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆