如何将未转义的文本添加到 Python 中的 LXML Etree?
How can I add unescaped text to an LXML Etree in Python?
LXML 的构建器 allows for easily generation of HTML and 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>'
LXML 的构建器 allows for easily generation of HTML and 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>'