você pode fazer isso na linha de comando em um shell bash
for i in *.xml; do
iconv -f ISO-8859-1 -t UTF-8 "$i" > "$i.1" && mv "$i.1" "$i"
done
isso basicamente pega todo o arquivo xml, coloca-os no Iconv para filname.xml.1 e então move o arquivo de volta para o nome do arquivo original
deu uma rápida olhada no iconv e aqui está o que deveria ser (se você está usando a versão GNU)
for i in *.xml; do
iconv -sc -f ISO-8859-1 -t UTF-8 "$i" > "$i.1" && mv "$i.1" "$i"
done
a opção -s silencia os avisos, e a opção -c omite caracteres inválidos da saída.