我有以下代码段:
from lxml import etree
dataset = etree.Element("trace_data")
# create childs of dataset
pinfo = etree.SubElement(dataset, "pinfo")
pinfo.text = processinfo
traces = etree.SubElement(dataset, "traces")
#enumerate over all traces, create a subelement to the traces element with an index for every element
for index,trace in enumerate(traces):
trace_xml = etree.SubElement(traces,str(index))
trace_xml.text = trace
令我感到困惑的是,这并没有填充跟踪的子元素,而是生成了如下XML:
<trace_data><pinfo>1</pinfo><traces/></trace_data>
即使我的意思是要遍历称为trace的字符串列表,然后为列表中的每个元素添加标签:
<trace_data><pinfo>1</pinfo><traces><trace1>"test"</trace1><trace2>"test2"</trace2</traces></trace_data>
以此类推
我怀疑这可能是我尝试为traces标签创建子元素的方式。
为列表中每个元素的标记痕迹创建子元素的方法有哪些?
谢谢。
答案 0 :(得分:0)
发现错误:
processinfo始终包含一个数字值,例如1个 LXML不允许标签以数字开头,因此会引发错误。
由于处理不当而无法看到此错误。