# Need help with XML onload

**URL:** https://forum.kirupa.com/t/need-help-with-xml-onload/211060
**Category:** flash
**Created:** [December 26, 2006, 7:04pm UTC](https://forum.kirupa.com/t/need-help-with-xml-onload/211060 "2006-12-26T19:04:30Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Caraldur](https://avatars.discourse-cdn.com/v4/letter/c/9fc29f/32.png) [@Caraldur](https://forum.kirupa.com/u/Caraldur)
#### Post date: [December 26, 2006, 7:04pm UTC](https://forum.kirupa.com/t/need-help-with-xml-onload/211060/1 "2006-12-26T19:04:30Z")

</div>

I’m having problems with an XML onload function. The trace statement in my flash movie returns undefined and the one in my class file also returns undefined.  
if I use trace(xnAnimal) inside the dataprovider function in the class file it returns the entire xml file.

I have used a similar code in another movie and it worked as it should but for some reason this isn’t working. Could someone help me out with this one.

here is the code I have in my flash movie.

```auto

var xmlAnimal:XML;
var animalStock:AnimalXML;

initializeAnimalXML("animalstock.xml");
        
        
function initializeAnimalXML(sFile:String):Void
{
    xmlAnimal = new XML();
    xmlAnimal.ignoreWhite = true;
    xmlAnimal.onLoad = function(bSuccess):Void
    {
        //var xnTreasureType:XMLNode;
        animalStock = new AnimalXML();
        animalStock.dataProvider=this.firstChild;
        trace(animalStock.Name); returns null
    }
    xmlAnimal.load(sFile);
}

```

My class code

```auto

class AnimalXML
{

    private var _sName:String;
    private var _nPS:Number;
    private var _nDX:Number;
    private var _nCN:Number;
    private var _sSpeed:String;
    private var _nACBonus:Number;
    private var _sBonusMuts:String;
    private var _sDescription:String;

    public function get Name():String{ return _sName; }
    public function get PS():Number{ return _nPS; }
    public function get DX():Number{ return _nDX; }
    public function get CN():Number{ return _nCN; }
    public function get Speed():String{ return _sSpeed; }
    public function get ACBonus():Number{ return _nACBonus; }
    public function get BonusMuts():String{ return _sBonusMuts; }
    public function get Description():String{ return _sDescription; }

    public function set dataProvider(xnAnimal:XMLNode):Void{
        _sName = xnAnimal.attributes.name;
        trace("XML Node: "+xnAnimal.attributes.name);
        _nPS = xnAnimal.attributes.ps;
        _nDX = xnAnimal.attributes.dx;
        _nCN = xnAnimal.attributes.cn;
        _sSpeed = xnAnimal.attributes.speed;
        _nACBonus = xnAnimal.attributes.acbonus;
        _sBonusMuts = xnAnimal.attributes.mutationbonus;
        _sDescription = xnAnimal.firstChild.nodeValue;
    }

    function AnimalXML(sName:String,nPS:Number,nDX:Number,nCN:Number,sSpeed:String,nACBonus:Number,sBonusMuts:String,sDescription:String){
        _sName = sName;
        _nPS = nPS;
        _nDX = nDX;
        _nCN = nCN;
        _sSpeed = sSpeed;
        _nACBonus = nACBonus;
        _sBonusMuts = sBonusMuts;
        _sDescription = sDescription;

    }

    public function toString():String{
        var sOutput:String = _sName +newline+_nPS+newline+_nDX+newline+_nCN+newline+_sSpeed+newline+_nACBonus+newline+_sBonusMuts+newline+_sDescription+newline;

        return sOutput
    }
}

```

xml file structure. I’m only showing one Animal Node but the files will actually have about 30 to 40 animal nodes.

```auto

<animalstock>
    <Animal> 
        <name>Alligator</name>
        <ps>15</ps>
        <dx>3</dx>
        <cn>12</cn>
        <speed>base 15,bipedal 10,Water 8</speed>
        <acbonus>13</acbonus>
        <mutations><mutationbonus/>
        <description><description/>
    </Animal>
<animalstock

```
