Вы можете написать скрипт (например, с помощью sed или perl), который использует замену регулярного выражения для предварительной обработки входных документов и экранирования амперсандов, за исключением начала символьных сущностей, которые распознает XML (т. Е. Пять предопределенных ) и любые, которые вы объявили).
например. сценарий заменит &
на &
в начале строк, например α
, что приведет к α
. Но это оставило бы <
и  
в покое.
Вопрос, который вы задаете, сводится к следующему: «Как получить инструменты, предназначенные для синтаксического анализа XML (то есть правильно сформированного XML), для обработки не-XML (то есть плохо сформированного XML)?» И ответ почти всегда будет заключаться в том, чтобы сначала использовать не XML-инструменты, чтобы исправить ввод и сделать его корректным.