Просмотр полной версии : XML элементы 2 array
Народ, не пойму как пользоваться XML объектом.
Есть файл:
------------------
<pages>
<page>xxx</page>
<page>yyy</page>
<page>zzz</page>
</pages>
-------------------
Грузю его в хмл - грузится (хмл.тоСтринг его показывает).
А теперь как мне раскидать содержимое всех <page> в элементы массива?
т.е. чтобы в итоге получилось:
arr[1] = "xxx";
arr[2] = "yyy";
arr[3] = "zzz";
короче, как пользоваться этими firstChild и nextSli.. (чего-то там)?
Stellerex
16.04.2002, 14:10
А зачем тебе XML разбрасывать по массиву?
При установленном ignoreWhite у XML объекта ссылку на можешь получить через myXML_xml.firstChild.
У него через childNodes получаешь массив всех элементов.
Nox Noctis
16.04.2002, 14:13
1. если ты точно знаешь, что все текстовые ноды у тебя лежат именно в таком порядке:
<основной_тег>
<первый_текст>...</первый_текст>
<второй_текст>...</второй_текст>
<третий_текст>...</третий_текст>
.........
.........
</основной_тег>
то загнать тексты в массив очень просто:
function getTextArray(XM) { // XM - это твой xml-объект
var xmlText = []; // массив в который текст записываем
var tmp = XM.firstChild.firstChild;
do {
xmlText.push(tmp.firstChild);
} while (tmp=tmp.nextSibling);
//------------- трейсим получившееся
for (i in xmlText) {
trace(i+" :: "+xmlText[i]);
}
//
return xmlText;
}
2. если ты не знаешь, как там расположены текстовые ноды (какая у них степень вложенности), то тебе нужен полный обход дерева (вширину или вглубину - зависит от задачи)
Именно так и надо - задача простая: все элементы - чаилды корневого. Просто впервый раз с хмл столкнулся.
Спасибо за ответ.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.