Руководство по actionscript. часть 3, стр. 072
Trace(novel. TITLE. toString( )); // Выводит: Ulysses
Если мы хотим получить строку, включающую текстовый узел и окружающие его теги, используется метод toXMLString ( ) класса XML, как показано в следующем коде:
trace(novel. TITLE. toXMLString( )): // Выводит: Ulysses
Стоит отметить, что правила преобразования строк для элементов XML, определенные в расширении Е4Х, изменяют способ обращения к концевым текстовым узлам в языке ActionScript. В языках ActionScript версий 1.0 и 2.0 для обращения к текстовым узлам использовалась переменная экземпляра firstChild класса XML (которая теперь, в языке ActionScript 3.0, является переменной экземпляра firstChild класса XMLDocument). Например, устаревшим эквивалентом следующей инструкции расширения Е4Х: trace(novel. TITLE. toStringC ));
будет являться:
trace(novel. fi rstChi1d. fi rstChi1d. fi rstChiId);
В расширении E4X к тексту элемента, не имеющего элементов-детей, в контексте строки можно обратиться непосредственно через имя этого элемента. Вот еще два примера кода с использованием расширения Е4Х (на этот раз мы опустили явный вызов метода toString ( ), поскольку среда Flash автоматически вызывает этот метод над любым аргументом, передаваемым в функцию trace ( ) ):
trace(novel. AUTHOR); // Выводит: Joyce, James trace(novel. PUBLISHER); // Выводит: Penguin Books Ltd
Далее представлено прямое сравнение устаревшего метода доступа к текстовым узлам с аналогичным методом доступа расширения Е4Х:
// Доступ к текстовому узлу в расширении Е4Х var msg:XML =
World
J. Programmer
Hello trace(msg. TO); // Выводит: World
trace(msg. FROM); // Выводит: J. Programmer trace(msg. MESSAGE); // Выводит: Hello
// Устаревший метод доступа к текстовому узлу
var msgDoc:XMLDocument = new XMLDocument(«»
+ «World»
+ «J. Programmer»
+ «Hello»
+ «»);
traceCmsgDoc. firstChild. firstChild. firstChild): // Выводит: World trace(msgDoc. firstChiId. childNodes[l].firstChild); // Выводит: J. Programmer traceCmsgDoc. firstChild. childNodes[2].firstChild): // Выводит: Hello
Преобразование атрибута в строку
Для экземпляров класса XML, которые представляют атрибуты, метод toString ( ) возвращает только значение этого атрибута, а не все его определение целиком. Например, следующий код преобразует атрибут ISBN предыдущего элемента в строку. Результатом преобразования является строка 0141182806, а не
isbn=’014ii82806\
traceCnovel.@ISBN. toString( )); // Выводит: 0141182806
Преобразование комментариев и инструкций обработки в строки
Когда метод toString ( ) класса XML вызывается над экземпляром класса XML, представляющим комментарий или инструкцию обработки, этот комментарий или инструкция обработки возвращается целиком:
XML. ignoreComments = false;
XML. ignoreProcessinglnstructions = false;
// Создаем фрагмент XML, включающий и комментарий, и инструкцию обработки
// (выделены полужирным шрифтом)
var novel:XML =
Ulysses
// Преобразуем комментарий в строку. // Выводит: trace(novel. comments( )[0].toString( ));
// Преобразуем инструкцию обработки в строку.