我一直在使用lxml来创建rss feed的xml.但是我在使用标签时遇到了麻烦,并且无法真正弄清楚如何添加动态数量的元素.鉴于lxml似乎只是将函数作为函数的参数,我似乎无法弄清楚如何循环动态数量的项目而不重建整个页面.
rss = page = (
E.rss(
E.channel(
E.title("Page Title"),
E.link(""),
E.description(""),
E.item(
E.title("Hello!!!!!!!!!!!!!!!!!!!!! "),
E.link("htt://"),
E.description("this is a"),
),
)
)
)
Run Code Online (Sandbox Code Playgroud)
要创建子元素并将它们添加到父元素,您可以使用以下append()方法:
>>> root.append( etree.Element("child1") )
Run Code Online (Sandbox Code Playgroud)
然而,这很常见,所以有一种更短、更有效的方法来做到这一点:SubElement工厂。它接受与Element工厂相同的参数,但另外需要父作为第一个参数:
>>> child2 = etree.SubElement(root, "child2")
>>> child3 = etree.SubElement(root, "child3")
Run Code Online (Sandbox Code Playgroud)
因此,您应该能够创建文档,然后说channel = rss.find("channel")并使用上述任一方法向channel元素添加更多项目。
| 归档时间: |
|
| 查看次数: |
2000 次 |
| 最近记录: |