 
                 for (var idx:int = raw_data_column.length - 1; idx >= 0; idx--)
                 {
+                    var id:String = raw_id_column[idx];
                     var key:String = raw_key_column[idx];
                     var value:String = raw_data_column[idx];
 
-                    if (VectorUtils.intersection(layer, [key]).length == 1)
+                    if (VectorUtils.intersection(layer, [id]).length == 1)
                     {
                         data_column.push(value);
                         key_column.push(key);

            
            if (layerNames.length > 0)
            {
                for (var idx:int = layerNames.length - 1; idx >= 0; idx--)
                {
                    children.push(new GraphMLLayerNode(this, layerNames[idx]));
                }


    public function getChildren():Array 
    {
        var idx:int;
        if (children == null)
        {
            children = [];
