code: protected function extract($source, array &$output)
      {
          $dirname = dirname($source);
  
          // Traitement spécifique aux dossiers.
          if (is_dir($source)) {
              $dh = opendir($source);
  
              while($file = readdir($dh)){
                  if (preg_match('/^\.{1,2}$/', $file)) continue;
  
                  $this->extract($source . '/' . $file, $output);
              }
  
              closedir($dh);
          }
          // Traitement spécifique aux fichiers.
          if (is_file($source)) {
              try {
                  $sxeResource = new \SimpleXMLElement(file_get_contents($source));
  
                  // Parcourir la ressource XML
                  for ($i = 0; $i < count($sxeResource->resource); $i++) {
                      // Traitement des elements commun :
                      $resource = $sxeResource->resource[$i];
  
                      $key = strval($resource->attributes()->KEY);
                      $value = strval($resource);
  
                      // Traitements des différentes sorties possibles
                      foreach ($this->targets as $attribut => $instructions) {
                          if(is_null($resource->attributes()->$attribut)) continue;
                          if(strtolower(strval($resource->attributes()->$attribut)) === 'false') continue;
  
                          $targetName = $instructions['name'];
                          $callback = $instructions['callback'];
  
                          if(!isset($output[$targetName])) $output[$targetName] = [];
  
                          call_user_func_array($callback, [$key, $value, &$output[$targetName]]);
                      }
                  }
              } catch (\Exception $e) {
                  // Ne pas emettre d'erreur
              }
          }
      }
docs: Extrait les textes associés à leur clé et les ranges dans le tableau fournir en argument.
  
  @param string $source Emplacement vers la/les source(s) xml.
  @param array  $output Tableau receuillant les ressources, rangé par target.