gpt4 book ai didi

python - 使用 lxml 动态创建 xml

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

我还没有使用 lxml 创建 xml,所以我有些迷茫。我可以创建一个函数,创建一个元素:

from lxml import etree as ET    
from lxml.builder import E

In [17]: def func():
...: return E("p", "text", key="value")

In [18]: page = (
...: E.xml(
...: E.head(
...: E.title("This is a sample document")
...: ),
...: E.body(
...: func()
...:
...: )
...: )
...: )

In [19]: print ET.tostring(page,pretty_print=True)
<xml>
<head>
<title>This is a sample document</title>
</head>
<body>
<p key="value">text</p>
</body>
</xml>

如何实现添加多个元素的功能?例如,我希望 func(3) 创建 3 个新段落。如果 func 返回一个列表,我会得到一个 TypeError。

最佳答案

如果你的函数可以返回多个元素,那么你需要使用 * argument syntax将这些元素作为位置参数传递给 E.body() 方法:

...
E.body(
*func()
)

现在 func() 应该返回一个序列:

def func(count):
result = []
for i in xrange(count):
result.append(E("p", "text", key="value"))
return result

关于python - 使用 lxml 动态创建 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12931742/

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