如何在lxml中强制将换行符转换为 实体?
解决方案:将文本换行符转为
实体输出 当然可以实现这个需求!lxml默认会保留文本里的换行符原样输出,不会自动转成 实体,所以咱们只需要提前处理文本内容,再交给lxml构建元素就好。
具体实现代码
from lxml import etree from lxml.builder import E # 先处理原始文本,把换行符替换成目标实体字符串 original_text = 'one\ntwo' processed_text = original_text.replace('\n', ' ') # 构建元素并输出 element = E.a(processed_text) output = etree.tostring(element, pretty_print=True) print(output)
输出结果
运行这段代码后,你会得到期望的输出:
b'<a>one&#13;two</a>\n'
原理说明
- 我们先把文本中的
\n换行符替换成 字符串,当lxml生成输出时,会自动把字符串里的&转义成&,最终就变成了&#13;,对应HTML里的 实体。 - 如果你的文本里同时存在
\n和\r两种换行符,可以扩展替换逻辑:processed_text = original_text.replace('\n', ' ').replace('\r', ' ')
内容的提问来源于stack exchange,提问作者Eugene
相关产品推荐
相关产品推荐

