在lxml的元素生成器中的循环中插入元素列表 [英] insert list of elements in loop inside element builder in lxml
本文介绍了在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屋!
查看全文