如何使用 Python LXML 重命名节点?
How to rename a node with Python LXML?
如何使用 LXML 重命名节点?
具体来说,如何在保留所有底层结构的同时重命名父节点,即 <body>
标签?
我正在使用 lxml.html
模块进行解析,但据推测 xml 和 html 在 lxml.html.HtmlElement
及其 XML对口。
我在 LXML 站点上搜索了文档,但没有找到任何关于重命名节点的参考。
获得 <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>'
如何使用 LXML 重命名节点?
具体来说,如何在保留所有底层结构的同时重命名父节点,即 <body>
标签?
我正在使用 lxml.html
模块进行解析,但据推测 xml 和 html 在 lxml.html.HtmlElement
及其 XML对口。
我在 LXML 站点上搜索了文档,但没有找到任何关于重命名节点的参考。
获得 <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>'