У меня проблема с getElementsByTagName в IE (7 и 8).
У меня есть поиск адреса, который возвращает каждый предложенный адрес (в виде строки XML) в переменную сеанса PHP, к которой затем осуществляется доступ с помощью функции AJAX, которая возвращает запрошенную переменную сеанса.
Каждая переменная сеанса устанавливается в шаге 1 поиска адреса ajax (я пробовал без кодировки символов и с utf-8):
$_SESSION['addrHint_' . $k1] = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$_SESSION['addrHint_' . $k1] .= '<Address>';
$_SESSION['addrHint_' . $k1] .= '<Postcode>' . $v1->Postcode . ' </Postcode>';
$_SESSION['addrHint_' . $k1] .= '<Line1>' . $v1->Line1 . ' </Line1>';
$_SESSION['addrHint_' . $k1] .= '<Line2>' . $v1->Line2 . ' </Line2>';
$_SESSION['addrHint_' . $k1] .= '<Line3>' . $v1->Line3 . ' </Line3>';
$_SESSION['addrHint_' . $k1] .= '</Address>';
И затем извлекается на шаге 2:
header('Content-Type: text/xml');
print_r( $_SESSION['addrHint_'.$_REQUEST['addr']] );
В AJAX js, когда состояние готово, оно выполняет среди других подобных строк кода следующее:
var xmlDoc = xmlHttp.responseXML;
var xmlRoot = xmlDoc.documentElement;
var postcode = xmlRoot.getElementsByTagName("Postcode")[0].childNodes[0].nodeValue;
document.forms[0]["address"+addr+"_Postcode"].value = postcode.substring(0, postcode.length-1);
(Он выполняет аналогичные действия для каждой строки адреса.) Фрагмент длины 1 находится там, потому что мне пришлось добавить пробел к каждому элементу, чтобы остановить проблему, возникшую у меня, когда элемент был нулевым.
В Firefox работает нормально, но не в IE. С тех пор я был в Google и нашел ряд результатов среди первых 5 страниц, но никаких решений. Я был бы очень признателен, если бы кто-нибудь мог пролить свет на это.
Заранее спасибо.