![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Всем, доброго дня!
Есть XML типа <parent>
<text></text>
</parent>
<parent>
<text></text>
<sub>
<text></text>
</sub>
</parent>
<parent>
<text></text>
<sub>
<text></text>
<sub>
<text></text>
</sub>
</sub>
</parent> ...
Родскажите как это лучше распарсить в Flash? Что-то я совсем запутался в массивах, блин... Последний раз редактировалось Ведьмак; 22.11.2007 в 17:22. |
|
|||||
|
я думал, что от этого тут не убежать, да и при обработке конечного массива тоже нужно будет его раскручивать рекурсивно..
можно с этого момента по-подробнее или пример? ) |
|
|||||
|
вот тут подобное обсуждалось: http://flasher.ru/forum/showthread.php?t=88954
__________________
: M F N W : |
|
|||||
|
спасибо.. только ему не предложили рабочего варианта, сказали только что вторая рекурсия лишня.. и в конце код также не рабочий..
вопрос еще актуален) Последний раз редактировалось Ведьмак; 22.11.2007 в 18:38. |
|
|||||
|
Регистрация: Jul 2007
Сообщений: 306
|
XML.prototype.makeObj = function(xObj, obj) {
//----- Initialise objects
if (xObj == null) {
xObj = this;
}
if (obj == null) {
obj = {};
}
var a, c, nName, nType, nValue, cCount;
//----- Add attributes to the object
for (a in xObj.attributes) {
obj[a] = xObj.attributes[a]
}
//----- Build child nodes
for (c in xObj.childNodes) {
nName = xObj.childNodes[c].nodeName;
nType = xObj.childNodes[c].nodeType;
nValue = xObj.childNodes[c].nodeValue;
if (nType == 3) {
obj._value = nValue;
obj._type = 'text';
}
if (nType == 1 && nName != null) {
if (obj[nName] == null) {
obj[nName] = this.makeObj(xObj.childNodes[c], {});
} else if (obj[nName]._type != 'array') {
obj[nName] = [obj[nName]];
obj[nName]._type = 'array';
}
if (obj[nName]._type == 'array') {
obj[nName].unshift(this.makeObj(xObj.childNodes[c], {}));
}
}
}
// Return object
return obj;
};
|
|
|||||
|
2 wvxvw: XML внешний..
2 telit: спасибо конечно... ты хочешь, чтобы у меня моск взорвался? или пару комментов уже рука не поднялась писать? хоть что передается в функцию ( xObj, obj)? |
|
|||||
|
Modus ponens
|
Во флеше все ХМЛи одинаковые %) они не бывают внешними или внутренними =)
Это значит, что если вы дождались ХML.onLoad - вы его уже 1 раз отпарсили. Лучше, чем сам Флеш вы это вряд ли сделаете, ну уж не быстрее, это точно =)
__________________
Hell is the possibility of sanity |
|
|||||
|
2 wvxvw: понял идею)) мне нужно обойти весь XML и перегнать инфорамцию во что-то с чем дальше можно удобны работать (массив и .т.д.)
2 telit: еще раз спасибо |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|