![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2003
Адрес: Ёбург
Сообщений: 145
|
Сам когда-то задался этим вопросом. Здесь в исходниках лежит несколько примеров по XML, в одном из них - прекрасный вариант обхода всего дерева. суть в том, что создается рекурсивная функция, которая вызывает сама себя, если встречается потомок или сиблинг. а в качестве параметра принимает собсно потомка (и всю его ветвь), или сиблинга
вот пример: function findTextElements() { xmel=this; while (xmel != null) { // это блок разбора if (xmel.nodeName == "header") { header += xmel.childNodes[0].nodeValue; } if (xmel.nodeName == "text") { txt += xmel.childNodes[0].nodeValue; } if (xmel.firstChild != null) { xmel = xmel.firstChild; } else { if (xmel.nextSibling != null) { xmel = xmel.nextSibling; } else { xmel = xmel.parentNode; xmel = xmel.nextSibling; } } } //тут можно вставить какое-нить действие, которое сработает по завершении разбора } Эту функцию запускаешь, а в качестве параметра - кидаешь свои данные. Если что - пиши. есть и другие варианты разбора хмл.
__________________
Ботва всё это |
![]() |
Часовой пояс GMT +4, время: 03:08. |
|
|
« Предыдущая тема | Следующая тема » |
|
|