читать много XML-файлов в папке с Simplexml

Должен ли я читать много xml файлов в папке и извлекать из них данные. У меня нет проблем с чтением папки с этим кодом

<?php
$dir = "Dati/xml/nonletti/";
  if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
    while (($file = readdir($dh)) !== false) {
      if (($file !== '.') && ($file !== '..') ) {
  echo "$file \n";
  }
}
  closedir($dh);
}
}
?>

но если я попытаюсь использовать simplexml для чтения всех файлов, я ничего не увижу

<?php
$dir = "Dati/xml/nonletti/";
if (is_dir($dir)) {
  if ($dh = opendir($dir)) {
    while (($file = readdir($dh)) !== false) {
      if (($file !== '.') && ($file !== '..') ) {
    $xml = simplexml_load_file($file);  
        $RGSostituzione = $xml->attributes()->Sostituzione;
    echo "<li>File $file - <b>Sostituzione:</b> $RGSostituzione</li>";
    }
  }
  closedir($dh);
  }
}
?>

Вы можете мне помочь и подсказать, как это сделать? спасибо- Филиппо


person Filippo Indaco    schedule 02.07.2013    source источник


Ответы (2)


Когда вы читаете файлы в каталоге, вы получаете только базовое имя файла, а не полный путь. Поэтому вам нужно добавить путь при вызове SimpleXML.

Измените на:

$xml = simplexml_load_file($dir . $file);  
person MrCode    schedule 02.07.2013

$xml = simplexml_load_file($dir . $file);

http://php.net/manual/fr/function.readdir.php (возвращает имя файла, а не весь путь к файлу)

http://php.net/manual/fr/function.simplexml-load-file.php (принимает полный путь к файлу)

person roptch    schedule 02.07.2013