Flash / Flex / ActionScript/XML/parent

Материал из Web эксперт
Перейти к: навигация, поиск

Accessing Parent Nodes: parent( ) method can be used successively to access any ancestor node

 

package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){

        var doc:XML = <grandparent><parent><child></child></parent></grandparent>;
        trace(doc);
        var kid:XML = doc.parent.child[0];
        trace(kid);
        var grandparent:XML = kid.parent().parent(  );
        trace(grandparent);
    }
  }
}



attribute.parent() returns the element on which the attribute is defined.

 
package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){
        var novel:XML = <BOOK ISBN="0000000000">
            <TITLE>ActionScript</TITLE>
            <AUTHOR>J, J</AUTHOR>
            <PUBLISHER>Books Ltd</PUBLISHER>
        <DESCRIPTION>A <B>very</B> thick book.</DESCRIPTION></BOOK>;
        
        trace(novel.@ISBN.parent());  // Returns the <BOOK> element
    }
  }
}



Invoking parent( ) on an XMLList with a single XML instance is identical to invoking parent( ) on that instance itself.

 

package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){
        var novel:XML = <BOOK ISBN="0000000000">
            <TITLE>ActionScript</TITLE>
            <AUTHOR>J, J</AUTHOR>
            <PUBLISHER>Books Ltd</PUBLISHER>
        <DESCRIPTION>A <B>very</B> thick book.</DESCRIPTION>
          </BOOK>;
        
        trace(novel.PUBLISHER[0].parent());  // Accesses <BOOK>
        trace(novel.PUBLISHER.parent());     // Also accesses <BOOK>

    }
  }
}



Retrieve an XMLList representing the element"s children, and then invoke parent( ) on that list

 

package{
  import flash.display.Sprite;
  
  public class Main extends Sprite{
    public function Main(){
        var novel:XML = <BOOK ISBN="0000000000">
            <TITLE>ActionScript</TITLE>
            <AUTHOR>J, J</AUTHOR>
            <PUBLISHER>Books Ltd</PUBLISHER>
        <DESCRIPTION>A <B>very</B> thick book.</DESCRIPTION>
          </BOOK>;
        
        var bookDetails:XMLList = novel.*;
        var book:XML = bookDetails.parent();
        
        trace(book);
    }
  }
}