Руководство по actionscript. часть 3, стр. 045
В табл. 18.1 представлены результаты передачи различных выражений расширения Е4Х, которые мы уже рассмотрели, в качестве параметров различных типов данных.
Таблица 18.1. Обзор: выражения расширения Е4Х и результаты
Выражение Тип данных параметра Результат
novel. AUTHOR String «Joyce, James»
novel. AUTHOR XML Ошибка несоответствия типов (невозможно преобразовать тип XMLList к типу XML)
novel. AUTHOR[0] String «Joyce, James»
novel. AUTHOR[0] XML Экземпляр класса XML, представляющий элемент
oopBook. AUTHOR String Строка, содержащая исходный код XML для четырех элементов
oopBook. AUTHOR XMLList Объект XMLList с четырьмя экземплярами класса XML, представляющими четыре элемента
Не беспокойтесь. Расширение Е4Х отлично продумано. Пусть его автоматическое поведение не тревожит вас. Большую часть времени оно будет помогать вам. Тем не менее при обращении к узлам XML с использованием синтаксиса обращения к переменным (оператор «точка») имейте в виду следующие потенциальные источники недоразумений.
? Выражение узелРодитель. имяУзлаРебенка является эквивалентным выражению узелРодитель. child [имяУзлаРебенка) и всегда ссылается на экземпляр класса XMLList, а не на экземпляр класса XML.
? Когда экземпляр класса XMLLis t содержит только один экземпляр класса XML, методы класса XML могут вызываться над экземпляром класса XMLList. Он автоматически переадресует эти вызовы экземпляру класса XML.
? Чтобы получить объектную ссылку на экземпляр класса XML, который содержится в элементе узелРодитель. имяУзлаРебенка, необходимо использовать выражение вида узелРодитель. имяУзлаРебенка [индекс], даже если нужный экземпляр класса XML является единственным элементом в объекте XMLLi s t (в этом случае для обращения к элементу используется выражение узелРоди тель. имяУзлаРебенка [ 0 ] ).
? Если XML-элемент содержит только текст (и не содержит других элементов-детей), в результате преобразования этого элемента в строку будет возвращен содержащийся в нем текст без окружающих тегов (например, в результате преобразования элемента UlyssesB строку будет возвращена строка «Ulysses», а не «Ulysses»).
? Если XML-элемент содержит текст и элементы-детей, в результате его преобразования в строку будет получен исходный код данного элемента вместе с тегами. Например, в результате преобразования элемента
в строку будет получено
«
Joyce, James
Если вы сомневаетесь, то можете воспользоваться методами класса XML для обращения к интересующему вас содержимому. Явные названия методов класса XML иногда легче понять, несмотря на более громоздкую запись.