Обращение к элементам XML
representation.xml
Код:
<?xml version="1.0" encoding="UTF-8" ?> Код AS3:
https://pp.vk.me/c638317/v638317943/...kdNu_Q6cRg.jpg Код AS3:
https://pp.vk.me/c638317/v638317943/...2PdAspuVQo.jpg Код AS3:
https://pp.vk.me/c638317/v638317943/...2PdAspuVQo.jpg Код AS3:
https://pp.vk.me/c638317/v638317943/...2PdAspuVQo.jpg Как мне обращаться к отдельным элементам иерархии, если не так? Мне нужно пройтись по детям representation, чтобы создать экземпляры соответствующих классов. |
1) <representation/> это корневой тэг XML, то есть сам XML. У него нет свойства (вложенной ноды) .representation — он сам и есть эта нода.
То есть <representation/> это this._representation; 2) Нода <circle></circle> пустая, какого вывода Вы ожидаете? Обращение правильное, хотя противоречит логике попыток выше))) 3) Обращение через две точки означает (грубо говоря) "искать на всех уровнях вложенности". В случае с <representation/> оно никак не поможет)) Вот если нужно обратиться к свойствам шейпа то да: trace(this._representation..point[0].@id); |
А разве если это корневой тег XML, то, имея несколько детей, тег не должен быть XMLList?
Цитата:
Да, действительно, вот так выводится "1" Код AS3:
Решил используя метод children(). Извиняюсь, хреново просмотрел документацию. |
Цитата:
|
Тоесть XMLList ведёт себя лишь как список, и ничего кроме, а XML является текстом с набором методов для удобной его обработки. XMLList может быть в виде XML в любом случае, а вот XML не всегда может быть XMLList, верно?
Или нет. XML это просто иерархическая DOM-модель документа, а не просто текст. Но технически XMLList может быть XML, но не наоборот? |
Цитата:
Код AS3:
Если нода имеет сложное содержимое (вложенные ноды), то Вы обращаетесь непосредственно к объекту XML: Код AS3:
Код AS3:
Добавлено через 7 минут Цитата:
Коротко говоря, XML подразумевает иерархию и вложенность, а XMLList — линейность, один уровень иерархии. В каком-то смысле это просто одномерный Vector.<XML>. Добавлено через 11 минут Также не стоит забывать, что XMLList содержит ССЫЛКИ на ноды исходного XML, а не копии этих нод. |
Цитата:
Спасибо большое. |
Цитата:
1) дочерняя нода является свойством отцовской 2) тип ее значения не предопределен Это ровно то же самое, как использование Object для хранения набора каких-то свойств. И вот допустим Вы делаете trace(_obj.foo); И если foo это инт, равный 2, то трейс и выдаст 2. А если foo это мувиклип, то... Так понятно? Соответственно у XML есть методы для определения типа содержимого — hasComplexContent() hasSimpleContent() В качестве подсказки, может пригодится для вашей задачи — чтобы узнать имя ноды, то есть "circle", "line", "shape" в вашем примере, можно использовать такую комбинацию: _node.name().localName |
Спасибо, вы крутой чел :)
|
Часовой пояс GMT +4, время: 13:18. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.