只需将这些行附加到embossed
,而不是:
embossed = objectify.Element('embossed')
embossed.append(objectify.Element('line'))
embossed.line[-1] = 'Test Line'
embossed.append(objectify.Element('line'))
embossed.line[-1] = 'Test Line 2'
每个 lxml 树标记就像一个列表,其中任何子项都是列表中的元素。简单地附加新objectify.Element
对象使它们成为您附加它们的标记的子级。
然后,您可以使用索引到达该列表的每个元素;索引是-1
最后一个元素,允许我们设置它的文本。
上面的代码输出:
>>> from lxml import objectify, etree
>>> embossed = objectify.Element('embossed')
>>> embossed.append(objectify.Element('line'))
>>> embossed.line[-1] = 'Test Line'
>>> embossed.append(objectify.Element('line'))
>>> embossed.line[-1] = 'Test Line 2'
>>> print etree.tostring(embossed, pretty_print=True)
<embossed xmlns:py="http://codespeak.net/lxml/objectify/pytype" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" py:pytype="TREE">
<line py:pytype="str">Test Line</line>
<line py:pytype="str">Test Line 2</line>
</embossed>