Flash / Flex / ActionScript/XML/descendants — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 11:14, 26 мая 2010
Accessing Ancestors
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ var movieList:XML = <movieList> <listName>My favorite movies</listName> <movie id="123"> <title>Titus</title> <year>1999</year> <director>J T</director> </movie> <movie id="456"> <title>Rushmore</title> <year>1998</year> <director>W A</director> </movie> <movie id="789"> <title>Hall</title> <year>1977</year> <director>Woody Allen</director> </movie> </movieList>; var title:XMLList = movieList.movie[1].title; var director:XMLList = title.parent().director; trace(title + "directed by "+ director); } }
}
</source>
A method form of this operator called descendants(). This function behaves the same way as the double dot:
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ var movieList:XML = <movieList> <listName>My favorite movies</listName> <movie id="123"> <title>Titus</title> <year>1999</year> <director>J T</director> </movie> <movie id="456"> <title>Rushmore</title> <year>1998</year> <director>W A</director> </movie> <movie id="789"> <title>Hall</title> <year>1977</year> <director>Woody Allen</director> </movie> </movieList>; trace(movieList.descendants("year").text().toXMLString()); } }
}
</source>
Descendants matches tags with the same name on different levels.
<source lang="java">
package{
import flash.display.Sprite; public class Main extends Sprite{ public function Main(){ var foo:XML = <a> <c> <b>foo </c> </b> </a>; trace(foo..b.toXMLString()); } }
}
</source>