如何使用Python LXML重命名节点?

时间:2016-04-06 18:03:51

标签: python xml lxml lxml.html

如何使用LXML重命名节点?

具体来说,如何在保留所有底层结构的同时重命名父节点即<body>标签?

我正在使用lxml.html模块进行解析,但据说在lxml.html.HtmlElement及其XML副本之间重命名方面,xml和html之间不应该有任何区别。

我搜索了LXML网站上的文档,但没有找到任何重命名节点的参考。

1 个答案:

答案 0 :(得分:11)

获得<body>元素后,只需更改其tag属性。

import lxml.etree
import lxml.html

doc = lxml.html.fromstring("<html><body><p></body></html>")
body = doc.find('body')
body.tag = "body-not"
print(lxml.etree.tostring(doc))

打印

b'<html><body-not><p/></body-not></html>'