Os seus arquivos XML estão errados, obviamente, porque eles deveriam começar por:
<?xml version="1.0" encoding="ISO-8859-1" ?>
Você só precisa omitir o "encoding" e esse cabeçalho se usar UTF-8, como você deve ter percebido.
Você pode escolher entre converter os seus arquivos, ou então corrigi-los.
Para converter, é relativamente fácil. Digamos que você tenha um arquivo em ISO-8859-1 e queira convertê-lo para UTF-8.
Você pode ler o arquivo com a codificação ISO-8859-1 e gravá-lo com UTF-8, mais ou menos assim:
import java.io.*;
class Conversor {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader (new InputStreamReader (new FileInputStream
("entrada.xml"), "ISO-8859-1"));
BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (new FileOutputStream
("saida.xml"), "UTF-8"));
for (String linha = br.readLine(); linha != null; linha = br.readLine())
{
bw.write (linha); bw.newLine();
}
bw.close();
br.close();
}
}
Obviamente você precisa tratar as exceções e encapsular o código acima em um método que receba os nomes dos arquivos de entrada e saída.