<xml> - <iframe> c нулевыми размерами
document.onreadystatechange - document.onload
document.parseError - вообще другой принцип, если есть ошибка, то ФФ загружает сведения о ней в сам документ, создавая элемент <parserrror>. ДЛя ФФ и оперы - это корневой элемент, для ГуглХром и Сафари - не корневой. Поэтому ошибку отслеживать надо через
if(xmlDoc.getElementsByTagName('parsererror').length != 0){//то, что-то там}
Но Опера вообще может сказать только что есть ошибка, а какая и где она не знает, а ФФ и ГуглХром - описывают ее поразному, причем, если ФФ и ГуглХром на русском, то ФФ отдает ошибку на русском, а ГуглХром на буржуйском
В общем где-то так....
Я бы советовал, создавать js-ом новый XML документ и загружать в него то, что вам надо.
ЗЫ Могу поделиться готовым решением (но без разбора ошибок, если есть ошибка, то создается пустой документ и флаг наличия ошибки становится true)