Unescape _xHHHH_ secuencias de escape XML usando Python

Estoy usando Python 2.x [no es negociable] para leer documentos XML [creados por otros] que permiten que el contenido de muchos elementos contenga caracteres que no son caracteres XML válidos al escapar de ellos usando la convención _xHHHH_ por ejemplo, ASCII BEL, también conocido como U + 0007 está representado por la secuencia de 7 caracteres u"_x0007_" . Ni la funcionalidad que permite la representación de ningún personaje antiguo en el documento ni la manera de escapar es negociable. Estoy analizando los documentos usando cElementTree o lxml [semi-negociable].

Este es mi mejor bash de eliminar la salida del analizador de la manera más eficiente posible:

 import re def unescape(s, subber=re.compile(r'_x[0-9A-Fa-f]{4,4}_').sub, repl=lambda mobj: unichr(int(mobj.group(0)[2:6], 16)), ): if "_" in s: return subber(repl, s) return s 

Lo anterior se sesga al observar una frecuencia muy baja de “_” en el texto típico y una velocidad mayor que la doble al evitar el aparato de expresión regular cuando sea posible.

La pregunta: ¿Alguna idea mejor por ahí?

También '_x' buscar '_x' lugar de solo _ , eso no importará mucho, pero seguramente la secuencia de dos caracteres es aún más rara que el guión bajo. ¡Aparte de estos detalles, parece que estás haciendo lo mejor de una mala situación!