2016-04-06 74 views
2

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

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

我使用lxml.html模块解析,但据推测,在lxml.html.HtmlElement与其XML对应文件之间的重命名方面,xml和html之间应该没有任何区别。

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

回答

7

一旦你有<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>'