如何使用LXML重命名节点?
具体来说,如何在保留所有底层结构的同时重命名父节点即<body>
标签?
我正在使用lxml.html
模块进行解析,但据说在lxml.html.HtmlElement
及其XML副本之间重命名方面,xml和html之间不应该有任何区别。
我搜索了LXML网站上的文档,但没有找到任何重命名节点的参考。
答案 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>'