
Код:
var str = "<block><item>1</item><![CDATA[2]]><item>3</item></block>";
var xml = new XML();
xml.ignoreWhite = true;
xml.parseXML(str);
var node = xml.firstChild.firstChild;
i = 0;
while (xml.firstChild.childNodes[i]) {
trace(xml.firstChild.childNodes[i].nodeType+" "+xml.firstChild.childNodes[i])
node = xml.firstChild.childNodes[i];
//trace("B: "+(node.nodeValue || node.firstChild.nodeValue));
i++;
}
Трейсит:
1 <item>1</item>
3 2
1 <item>3</item>
Т.е. при типе узла 3 (текстовый) он ни разу не undefined
а вот тут

Код:
var str = "<block><item>1</item><![CDATA[2]]><item>3</item></block>";
var xml = new XML();
xml.ignoreWhite = true;
xml.parseXML(str);
trace(xml.firstChild.childNodes[1].childNodes[0])
Как раз undefined.