Руководство по actionscript. часть 3, стр. 037
Листинг 18.5. Пользовательский метод nextSibling()
public function nextSibling (theNode:XML):XML { if (theNode. parent( ) != null
&& theNode. childlndex( ) < thenode.parent( ).children( ).length( )-l) { return thenode.parent( ).*[thenode.childindex( )+l]; } else { return null;
}
}
// Использование: nextSibling(некийУзел):
Расширение E4X уменьшает необходимость доступа к узлам-братьям, поскольку основное внимание уделяется обращению к элементам по их имени. Например, для обращения к элементу с помощью расширения Е4Х мы обычно используем простую запись novel. TITLE, а не author. parent( ).*[author. childIndex( )-1].
Обращение к атрибутам
Для обращения к объекту XMLList, представляющему все атрибуты элемента, используется метод экземпляра attributes ( ) класса XML, не принимающий аргументов. Он имеет следующий общий вид:
weK^^ewewr. attributesC )
Например, следующий код возвращает объект XMLLi st, представляющий атрибуты элемента (элемент L на рис. 18.2):
novel. attributesC )
В качестве альтернативы для обращения к объекту XMLList, представляющему атрибуты элемента, можно использовать более удобный синтаксис специального символа атрибутов (@ *) расширения Е4Х, который записывается следующим образом:
некийЭлемент.@* // Возвращает объект XMLList, представляющий все атрибуты // элемента некийЭлемент
Например, приведенный ниже код, который является эквивалентом выражения novel. attributes ( ), возвращает объект XMLList, представляющий атрибуты элемента (элемент L на рис. 18.2):
novel.@*
Как и в случае с элементами, для обращения к атрибутам в объекте XMLList можно использовать оператор доступа к элементу массива ( [ ] ). Например, следующий код обращается к первому и единственному атрибуту элемента — ISBN (элемент М на рис. 18.2):
novel. attributesC )[0]
Следующий код также обращается к первому атрибуту элемента (снова ISBN), но использует синтаксис специального символа атрибутов расширения Е4Х:
novel.@*[0]
Однако ни выражение novel. @* [0] ,ни выражение novel. attributes ( ) [0] не представляют обычный код расширения Е4Х. В расширении Е4Х обращение к атрибутам редко происходит по их порядковому номеру в документе XML. Обычно к атрибутам обращаются по имени, используя либо метод attribute ( ), либо более удобный синтаксис обращения к переменным расширения Е4Х. Для обращения к атрибуту по его имени с помощью метода attribute ( ) используется следующий обобщенный код:
некийЭлемент. attгibuteC»имяАтрибу те»)
Данный код возвращает объект XMLLi st, содержащий атрибут с именем им я Атрибута элемента некийЭлемент. Например, следующий код возвращает объект XMLList, который содержит один экземпляр класса XML, представляющий атрибут ISBN (элемент М на рис. 18.2) элемента :
novel. attri bute(«ISBN»)
Данное выражение является эквивалентом обращения к атрибуту по имени с использованием синтаксиса обращения к переменной:
некийЭлемент.$имяАтрибута
Например, следующий код также вернет объект XMLList, содержащий один экземпляр класса XML, который представляет атрибут ISBN элемента, но в данном случае используется синтаксис обращения к переменной:
novel.(aiSBN
Каки child( ), метод attribute ( ) возвращает объект XMLList, содержащий экземпляры класса XML, которые соответствуют указанному имени. Однако, поскольку два или более атрибута одного элемента не должны иметь одинаковые имена, объект XMLList, возвращаемый методом attribute ( ), всегда содержит только один экземпляр класса XML (представляющий атрибут с указанным именем).