Если возможно, парсить по кускам. Если "пишем результаты в БД" это простой INSERT, то делать его не каждый раз. а вставлять по несколько записей за раз (VALUES), в зависимости от количества данных (попробовать 1000 вставить для начала).
$xmlFile3 = "http://путь-к-XML/Cities".$districtId;
Эта строка два раза повторяется, можно не читать второй раз.