Показать сообщение отдельно
Старый 09.11.2006, 21:17
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 103  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
По умолчанию 64. XML и XMLList

Работая с XML в ActionScript 3 вы в основном имеете дело с двумя объектами: XML (Top level XML) и XMLList (Top level XMLList). Существенная разница между ними в том, что XML – это один элемент XML-дерева, например узел (который может содержать произвольное количество вложенных узлов), а XMLList массив элементов (1 или более).
Код:
// XML:
<foo>
	<foo />
	<foo />
	<foo />
</foo>
Код:
// XMLList:
<foo />
<foo />
<foo />
В первом примере есть один корневой узел и это будет представлено как XML объект. Во втором примере список узлов, это уже будет XMLList.
В отличие от старого XML объекта из предыдущих версий ActionScript (который теперь XMLDocument), новые XML и XMLList могут представлять из себя не только узлы XML дерева (nodes), но и другие значения, например атрибуты:
Код:
var myXML:XML = <foo>
    <foo bar="bar1" />
    <foo bar="bar2" />
    <foo bar="bar3" />
</foo>;

trace(myXML.foo.@bar.toXMLString());
/* Output:
bar1
bar2
bar3
*/
trace(myXML.foo.@bar is XMLList); // true
Заметьте, что атрибуты всегда возвращаются как XMLList, даже если в итоге получается только один атрибут:
Код:
trace(myXML.foo[0].@bar is XMLList); // true
Для того чтобы получить XML объект, нужно из возвращаемого массива взять первый элемент:
Код:
trace(myXML.foo[0].@bar[0] is XML); // true
Аналогичная ситуация и с вложенными узлами XML:
Код:
var myXML:XML = <foo>
    <foo />
</foo>;
trace(myXML.foo is XMLList); // true
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.