使用LXML插入元素时如何获取新元素以设置其属性与文本
解决方案
有两种常用的实现方式,优先推荐第一种:
方式1:先创建元素完成配置,再插入父节点
这是最简洁的写法,实例化元素后先存到本地变量,配置完文本、属性再执行插入操作,无需额外查找元素:
from lxml import etree text = ['First', 'Second', 'Third'] # 此处parent为你已经初始化/获取到的父节点对象 for i, t in enumerate(text): # 先创建tspan元素存入变量 tspan_node = etree.Element('tspan') # 直接用变量设置文本、属性 tspan_node.text = t tspan_node.set('custom_attr', str(i)) # 示例:设置自定义属性 # 所有配置完成后再插入父节点 parent.insert(i, tspan_node)
方式2:插入后通过插入位置的索引获取元素
如果你必须先执行插入操作再配置元素,可以通过你插入时指定的下标i,直接从父节点的子元素列表中取出刚插入的元素:
text = ['First', 'Second', 'Third'] for i, t in enumerate(text): parent.insert(i, etree.Element('tspan')) # 插入位置为i,对应父节点第i个的子元素就是刚创建的节点 new_tspan = parent[i] new_tspan.text = t new_tspan.set('custom_attr', str(i))
内容的提问来源于stack exchange,提问作者mrgou
相关产品推荐
相关产品推荐

