1) Ваш запрос является синхронизированным, потому что вы используете send (..., FALSE). Асинхронная вещь в вашем случае не проблема.
2) Проверьте в консоли файл console.log (xml). Не отображать его на html странице и комментировать строку замены, поскольку отображение содержимого этой переменной может быть изменено в режиме реального времени в любое время. И посмотрите, действительно ли это атрибут pur & in.
var xml = request.responseXML;
/* var xml = xml.replace (/&/g, "and"); */
console.log (xml);
3) однако: & недопустимо в атрибуте xml, его нужно заменить на & во время создания xml . Кто производит этот XML-файл? вы или сторонняя служба, или другой программист?
4) заменить & не является решением: представьте, что позже в xml вы найдете действительную строку
<text> here & there </text>
<text> here and;amp; there </text>
5) попытаться работать с responseText, а не с xmlResponse: это полный необработанный ответ до того, как браузер попытается его проанализировать.
var xhr = new XMLHttpRequest();
xhr.open('GET', '/ODDS/odds3.xml');
xhr.onload = function() {
if (xhr.status === 200) {
alert('response is' + xhr.responseText);
}
else {
alert('Request failed. Returned status of ' + xhr.status);
}
};
xhr.send();