代码之家  ›  专栏  ›  技术社区  ›  Silfheed

如何使用Python的lxml在XML文档中打印实体号而不是实体名?

  •  4
  • Silfheed  · 技术社区  · 17 年前

    我正在使用lxml和python生成XML文档(仅使用etree.tostring(root)),但此时生成的XML将HTML实体显示为带有命名实体(<)的实体,而不是其数值(&60;)。我该如何准确地改变它,使结果使用数值而不是名称?

    谢谢

    1 回复  |  直到 17 年前
        1
  •  2
  •   Brian    17 年前

    最终,看起来python代码将调用 xmlNodeDumpOutput 在libxml2库中。

    不幸的是,似乎没有任何方法可以配置它来控制这些实体的表示方式。在xmlEncodeEntitiesReentrant中,<>和&字符被硬编码以始终使用适当的XML实体,因此似乎没有办法强制它使用数值。

    如果需要,您可能需要对字符串执行另一个传递,然后手动执行“ outputString.replace("&lt;","&#60;") “对于那些角色。