Руководство по actionscript. часть 3, стр. 032
Предположим, что мы хотим изменить название элемента
novel. AUTHORCO].setNameC»WRITER»);
Однако обычно используется следующий более удобный код, который неявно обращается к экземпляру элемента
novel. AUTHOR. setName(«WRITER»);
Когда мы вызываем метод setName ( ) непосредственно над объектом XMLList, возвращаемым выражением novel. AUTHOR, среда выполнения Flash распознает, что данный список содержит только один экземпляр класса XML (
В большинстве случаев данный трюк языка ActionScript упрощает написание XML-кода и делает его интуитивно понятным. Однако использовать эту методику следует осторожно. Например, следующий код вызывает метод setName ( ) над объектом XMLList, который содержит несколько экземпляров класса XML:
var novel:XML =
novel. AUTHOR. setName(‘WRITER’);
При выполнении предыдущего кода среда Flash сгенерирует следующую ошибку:
The setName method works only on lists containing one item.
На русском языке она будет выглядеть так: Метод setName работает только для списков, содержащих один элемент.
Представление объекта XMLList, содержащего только один экземпляр классаXML, является важным и зачастую неверно трактуемым аспектом программирования с использованием расширения Е4Х, поэтому мы будем возвращаться к этой теме несколько раз в процессе чтения данной главы.
Обращение к текстовым узлам
Как уже известно из разд. «Данные XML в виде иерархии», текст, содержащийся в элементе, представляется в виде узла в иерархии XML. Например, в следующем XML-фрагменте (повторяемом из листинга 18.2)текст «Ulysses» является текстовым узлом. Он представляется экземпляром класса XML, типом узла которого является текст, как и текстовые узлы «Joyce, James» и «Penguin Books Ltd».