我没有使用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>
Run Code Online (Sandbox Code Playgroud)
如何使功能添加多个元素?例如,我想func(3)创建3个新段落.如果func重新生成列表,我会得到一个TypeError.
如果您的函数可以返回多个元素,那么您需要使用*参数语法将这些元素作为位置参数传递给E.body()方法:
...
E.body(
*func()
)
Run Code Online (Sandbox Code Playgroud)
现在func()应该返回一个序列:
def func(count):
result = []
for i in xrange(count):
result.append(E("p", "text", key="value"))
return result
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2214 次 |
| 最近记录: |