проверьте, существует ли файл, если нет, создайте


Как проверить с помощью php dom, существует ли xml-файл, и если нет, то создать его.

<?php
    header("Location: index.php");

    $xmldoc = new DOMDocument();
    $xmldoc->load('sample.xml');
    $newAct = $_POST['activity'];

    $root = $xmldoc->firstChild;
    $newElement = $xmldoc->createElement('activity');
    $root->appendChild($newElement);
    $newText = $xmldoc->createTextNode($newAct);
    $newElement->appendChild($newText);
    $xmldoc->save('sample.xml');

?>

Прямо сейчас, поскольку он не существует, он дает мне эту ошибку:

DOMDocument::load(): I/O warning : failed to load external entity 
3 2

3 ответа:

Не делай этого с домом, проверь сам:

if(file_exists('sample.xml')){
    $xmldoc->load('sample.xml');
} else {
    $xmldoc->loadXML('<root/>');//or any other rootnode name which strikes your fancy.
}

Сохранение в файл будет сделано автоматически с $xmldoc->save(); далее.

Используя file_exists('sample.xml')

Функция Load возвращает true и false. Попробуйте использовать этот код:

...
$res = $xmldoc->load('sample.xml');
if ($res === FALSE)
{
     /// not exists
}

Http://de2.php.net/manual/en/domdocument.load.php