Как я могу напечатать номера сущностей в моем XML-документе вместо имен сущностей, используя Python lxml? - PullRequest
4 голосов
/ 03 апреля 2009

Я использую lxml и python для генерации XML-документов (просто используя etree.tostring (root)), но в данный момент получаемый xml отображает html-сущности как с именованными сущностями (& lt;), а не их числовыми значениями (& # 60;). Как именно я могу изменить это так, чтобы результат использовал числовые значения вместо имен?

Спасибо

1 Ответ

2 голосов
/ 04 апреля 2009

В конечном счете, похоже, что код Python вызовет xmlNodeDumpOutput в библиотеке libxml2.

К сожалению, не похоже, что есть какой-либо способ настроить это, чтобы управлять представлением таких объектов. Если посмотреть на entity.c в xmlEncodeEntitiesReentrant, символы <> и & жестко закодированы, чтобы всегда использовать соответствующий объект XML, поэтому, похоже, нет способа заставить его использовать числовые значения.

Если вам это нужно, вам, вероятно, придется выполнить еще одну передачу строки и вручную выполнить «outputString.replace("&lt;","&#60;")» для этих символов.

...