orrigindo entidades XML sem escape em Java com Rege

Tenho alguns XML mal formatados que devo analisar. Não é possível corrigir o problema a montante.

O problema (atual) é que nem sempre os caracteres "e" comercial são escapados adequadamente, por isso preciso converter& para dentro&

E se&amp; já está lá, não quero alterá-lo para&amp;amp;. Em geral, se alguma entidade bem formada já estiver lá, não quero destruí-la. Não acho que seja possível, em geral, conhecer todas as entidades que possam aparecer em qualquer documento XML em particular, então quero uma solução em que algo como&<characters>; é preservado.

Onde<characters> é um conjunto de caracteres que define uma entidade entre o @ inici& e o fechamento;. Em particular,< e> sãonãiterais que denotariam um elemento XM

Agora, ao analisar, se eu vir&<characters> Não sei se vou encontrar um;, uma (espaço), fim de linha ou outro&. Então eu acho que preciso lembrar<characters> enquanto procuro um personagem que me diga o que fazer com o original&.

Acho que preciso do poder de um autômato push-down para fazer isso, não acho que uma máquina de estado finito funcione por causa do que considero um requisito de memória - isso está correto? Se eu precisar de um PDA, uma expressão regular em uma chamada paraString.replaceAll(String, String) não vai funcionar. Ou existe um regex Java que pode resolver esse problema?

Lembre-se: pode haver várias substituições por linh

(Estou ciente deessa questã, mas não fornece a resposta que estou procurando.)

questionAnswers(5)

yourAnswerToTheQuestion