如何在Python中向LXML Etree添加未标注的文本



LXML的构建器允许轻松生成HTML和XML,如下所示:

>>>from lxml.builder import E
>>>import lxml.etree
>>>lxml.etree.tostring(E.html('hello'))
b'<html>hello</html>'

但是,如果我包含已经在HTML中的文本,它就会跳过尖括号,这是应该的:

>>>lxml.etree.tostring(E.html('<b>Hello</b>'))                                                       
b'<html>&lt;b&gt;Hello&lt;/b&gt;</html>'

那么,我如何才能将内部文本视为原始HTML/XML呢?我想让它在上面的例子中输出<html><b>Hello</b></html

您可以通过将html字符串解析为lxml etree对象来轻松实现这一点:

In [1]: from lxml.builder import E                                       
In [2]: import lxml.etree                                           
In [3]: lxml.etree.tostring(E.html(lxml.etree.fromstring('<b>Hello</b>')
Out[3]: b'<html><b>Hello</b></html>'

最新更新