2016-04-06 71 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>'