![]() |
|
||||||||||
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
Цитата:
Он прервется, если попадется текстовый узел А если код как у Mnilionic var node = xml.firstChild.firstChild;
while(node){
trace("значение: " + node.firstChild.nodeValue);
node = node.nextSibling;
add Цитата:
Собственно об этом Гурский и писал. Последний раз редактировалось chingachgoog; 09.10.2007 в 18:14. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Хм.
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;
while (node) {
trace("A: "+(node.nodeValue || node.firstChild.nodeValue));
node = node.nextSibling;
}
i = 0;
while (xml.firstChild.childNodes[i]) {
node = xml.firstChild.childNodes[i];
trace("B: "+(node.nodeValue || node.firstChild.nodeValue));
i++;
}
|
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
А где тут for?
если это у вас то см. оптимизацию выше. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Так, стоп. Я отвечал насчет поста Ведьмака про текстовый тег. Никуда ничего не прерывается.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цикл не прервется, просто трейс в коде Ведьмака выдаст undefined на текстовом ноде и все. Если надо получить значение нода или его ребенка, то пример я написал выше.
|
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
В том-то и дело, если бы выдало undefined, то цикл прервался бы, но undefined не выдается.
Видимо в хелпе имелось ввиду, что у самого текстового узла, если к нему (к текстовому узлу) применить childNodes, будет выдаваться undefned. За пример спасибо, такого я еще не встречал: Почему-то был уверен, что должна выдаваться булевая величина, ан нет... Последний раз редактировалось chingachgoog; 09.10.2007 в 18:43. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Нет, в коде Ведьмака трейсится childNodes текущего нода. А в цикле идет перебор childNodes родителя. Никакой ошибки в хелпе и в коде нет.
|
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
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 а вот тут Как раз undefined. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну и что ты хотел этим сказать?
![]() Все работает ровно так, как должно. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:00. |
|
|
« Предыдущая тема | Следующая тема » |
|
|