Современные браузеры (Opera, Chrome, Firefox, Safari) и Internet Explorer по-разному интерпретируют дочерние узлы. В коде:
<div id="first">
<div>bla</div>
</div>
(http://jsfiddle.net/2Ra3B/)
Internet Explorer увидит только 1 дочерний узел «первого».
Современные браузеры увидят 3 дочерних узла: 1 элементный узел (div) и 2 текстовых узла до и после элементного узла (пробелы). Отметьте nodeType == 3
, если вы хотите использовать только текстовые узлы.
Более того, может быть, вы должны использовать data
или nodeValue
вместо text
(я не знаю, работает ли text
, в «классическом» DOM браузера это не работает, но я не проверьте это с помощью responseXML
).
Вам также следует рассмотреть возможность использования JSON, если вы хотите использовать передаваемые данные только в JavaScript.
PS. Вы допустили ошибку в коде: проверка, если childNodes.length > 3
вместо > 4
или лучше выглядит >= 5
.