【发布时间】:2010-10-17 10:47:38
【问题描述】:
我正在使用 lxml 和 python 生成 xml 文档(仅使用 etree.tostring(root) ),但目前生成的 xml 显示 html 实体与命名实体 ( < ; ) 而不是它们的数值 ( 60 ;)。我究竟该如何进行更改,以便结果使用数值而不是名称?
谢谢
【问题讨论】:
我正在使用 lxml 和 python 生成 xml 文档(仅使用 etree.tostring(root) ),但目前生成的 xml 显示 html 实体与命名实体 ( < ; ) 而不是它们的数值 ( 60 ;)。我究竟该如何进行更改,以便结果使用数值而不是名称?
谢谢
【问题讨论】:
最终,python 代码似乎会调用 libxml2 库中的xmlNodeDumpOutput。
不幸的是,似乎没有任何方法可以配置它来控制此类实体的表示方式。查看 xmlEncodeEntitiesReentrant 中的 entity.c, 和 & 字符被硬编码为始终使用适当的 XML 实体,因此似乎没有办法强制它使用数值。
如果您需要这个,您可能需要对字符串执行另一次传递,并为这些字符手动执行“outputString.replace("&lt;","&#60;")”。
【讨论】: