Python: синтаксический анализ XML, трактующий (шестнадцатеричное) экранирование как буквенные строки - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть XML, который содержит необычные (но экранированные) символы:

<key code="51" output="&#x0008;"/> <!-- backspace -->
<key code="53" output="&#x001B;"/> <!-- escape -->

Как я могу разобрать это так, чтобы значения атрибутов output были буквальными строками "&#x0008;" и "&#x001B;" (а не действительными управляющими символами возврата / возврата)?

Парсеры Python, такие как lxml.etree.fromstring, похоже, всегда их декодируют, что хорошо для обычных символов, таких как "&#x0097;" -> "a". Использование etree.XMLParser с resolve_entities=False сохраняет такие вещи, как &amp;, но не &#x...;, что мне требуется.


Я намерен проанализировать файл, содержащий строки, подобные показанным выше, манипулировать деревом с помощью python и, наконец, сохранить его в другом файле, который выглядит как первый.

Спасибо!

...