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><b>Hello</b></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>'