我正在使用lxml和python生成xml文档(仅使用etree.tostring(root))但是此时生成的xml显示html实体与命名实体(& lt;)一样,而不是它们的数值( <)。我究竟该如何更改它以使结果使用数值而不是名称?
由于
答案 0 :(得分:2)
最终,看起来python代码将在libxml2库中调用xmlNodeDumpOutput。
不幸的是,看起来没有任何方法可以配置它来控制这些实体的表示方式。查看xmlEncodeEntitiesReentrant中的entities.c,< >和&字符被硬编码以始终使用适当的XML实体,因此似乎无法强制它使用数值。
如果你需要这个,你可能不得不对字符串执行另一次传递,并为这些字符手动执行“outputString.replace("<","<")
”。