public static function naiveResolvePath($data, $path, $split = true)
 {
     if (is_object($data)) {
         if ($dom instanceof DOMNode) {
             throw new MWException("naiveResolvePath does not like DOMNode objects");
         }
         $data = wfObjectToArray($data);
     }
     if (!is_array($data) || $path === '.') {
         return $data;
     }
     if ($split && is_string($path)) {
         $path = DataTransclusionSource::splitList($path, '/');
     }
     if (is_string($path) || is_int($path)) {
         return @$data[$path];
     }
     if (!$path) {
         return $data;
     }
     $p = array_shift($path);
     if (is_string($p) && preg_match('/^(@)?(\\d+)$/', $p, $m)) {
         //numberic index
         $i = (int) $m[2];
         if ($m[1]) {
             //meta-index
             $k = array_keys($data);
             $p = $k[$i];
         }
     }
     if (!isset($data[$p])) {
         return false;
     }
     $next = $data[$p];
     if ($next && $path) {
         return FlattenRecord::naiveResolvePath($next, $path);
     } else {
         return $next;
     }
     //TODO: named components. separator??
 }