Почему не удаляются элементы в XML документе?
Указатель итератора foreach ставится на элемент с индексом 0, затем этот элемент удаляется, соответственно нумерация сдвигается. Итератор переходит на элемент с индексом 1, пропуская элемент, получивший индекс 0.
Можно сделать так:while($items->length) {
    $sitemap->removeChild($items->item(0));
}
Используйте вот такой циклfor($i = 0, $item = $items->item($i); $item; $item = $items->item($i)) {
    $sitemap->removeChild($item);
}Удаляя элемент, вы меняете объект, а foreach об этом не знает