gpt4 book ai didi

python - 如何使用 Python LXML Objectify 创建相同的 XML 元素 3 次

转载 作者:数据小太阳 更新时间:2023-10-29 02:31:21 24 4
gpt4 key购买 nike

我问了一个关于添加 multiple elements 的问题几周前,现在我遇到了类似的问题。我必须创建一些 XML,其中包含以下内容:

<embossed>
<line>Test Line</line>
<line>Test Line 2</line>
<line>Test Line 3</line>
</embossed>

我不知道如何使用 LXML objectify.Element() 方法连续 N 次创建具有不同文本的相同元素。我试过这个:

embossed = objectify.Element('embossed')
embossed.line = objectify.Element("line")
embossed.line = objectify.Element("line")

但我最终在“浮雕”元素中只有一个“线条”元素。有谁知道如何做到这一点?谢谢!

最佳答案

只需将行附加到 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>

关于python - 如何使用 Python LXML Objectify 创建相同的 XML 元素 3 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12586611/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com