В этом ответе предполагается, что вы имеете в виду шестнадцатеричные ссылки на символы, когда говорите «шестнадцатеричное значение». Если это неверно, уточните.
Простое выполнение XML через процессор XSLT должно разрешить ваши шестнадцатеричные ссылки. (Я тестировал с Xalan, Saxon 6.5.5 и Saxon-HE / PE / EE 9.3.05.)
Единственное, что вам нужно, кроме преобразования идентичности, - это другой шаблон для переименования ваших элементов.
Ввод XML
<some.doc>
<some.element attr="test">
<another.element>Here is a hex ref: Ω</another.element>
<another.element>Here is a hex ref: Σ</another.element>
</some.element>
</some.doc>
XSLT 1.0
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="text()|processing-instruction()|comment()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{translate(name(),'.','_')}">
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Вывод XML
<some_doc>
<some_element attr="test">
<another_element>Here is a hex ref: Ω</another_element>
<another_element>Here is a hex ref: Σ</another_element>
</some_element>
</some_doc>