2016-04-06 2 views
2

Как переименовать узел с помощью LXML?Как переименовать узел с Python LXML?

В частности, как переименовать родительский узел, т. Е. Тег <body>, сохраняя при этом всю базовую структуру?

Я разбираюсь с использованием модуля lxml.html, но, предположительно, не должно быть никакой разницы между xml и html в терминах переименования между lxml.html.HtmlElement и его XML-копией.

Я просмотрел документы на сайте 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>' 
Смежные вопросы