![]() |
нет, ты немного не понял.
В примере выше объект "х" - это xml-объект, в котором доступ к значениям осуществляется через nodeValue. Метод toObject возвращает стандартный флешовый объект с обычными свойствами/значениями, т.е. "x" и "xmlobj" - разные объекты по сути и по классам. В случае нескольких тегов с одинаковым именем, метод создаёт свойство-массив. Например: Код:
s = '<?xml version="1.0" ?> |
Нет, я все-равно не понимаю, зачем все эти преобразования и перемешивания данных? Облегчить жизнь? Скорее усложнить, о чем и свидетельствует эта тема…
|
Да, а как ты обратишься к значению узла <thing> вышепреведеного xml-a?
|
Изменил бы архитектуру таким образом, чтобы одному логическому элементу не пришлось бы обращаться глубже своих детей. Не говоря уже о том, что была бы четкая структура XML, с определенными правилами построения.
|
Цитата:
Код:
function getNode (node, name) { |
Ажно руки зачесались дописать книгу про XML.
Пара советов: - etc дело говорит: преобразовывать стандартный объект (XML) в нестандартный дело сомнительное. - чтобы достучаться до значения атрибута и получить его в нужном тебе типе, просто сделай методы конвертации/доступа. Поскольку расширить XMLNode своим классом нерентабельно, лучше юзать композицию. К примеру, желаем получить доступ к значению атрибута как к массиву: (пример не рабочий, просто как принцип) Код:
class XMLUtils {- разберись со своим стандартом XML, сделай правильную структуру. Работа с данными не должна быть в виде длинных иерархических обращений. Передавай узлы на обработку экземплярам, а не управляй ими централизованно. К примеру, у тебя на сцене несколько персонажей, привязанных к юзерам. Их состояние апдейтится из XML. Тогда лучше сделать XML вида: Код:
<state>Код:
private function onLoad (ok) {Код:
class UserClass {Резюмируем: - получили данные в приложение - в приложении раскидали по экземплярам - в экземплярах раскидали по обработчикам - в обработчиках проверили типы, привели к нужным - выполнили действия. код выше - не рабочий, просто иллюстрация. - оч тяжело писать код прямо здесь... три раза правил :) |
Да, обрати внимание, что нигде в коде не обращаемся к узлам - детям детей.
Исключение в onLoad, да и то потому, что this - пустой. Второе исключение я допускаю для текстовых узлов в обращениях вида: node.firstChild.nodeValue; все остальные случаи - признак неидеальной организации проекта :) |
жаль тут в мемориз низзя.
|
Цитата:
А если несколько нодов с одинаковым именем? |
Цитата:
|
| Часовой пояс GMT +4, время: 22:55. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.