проверьте, существует ли файл, если нет, создайте - PullRequest
2 голосов
/ 29 июля 2010

как мне проверить используя 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 ]

10 голосов
/ 29 июля 2010

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

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

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

2 голосов
/ 29 июля 2010

с использованием file_exists('sample.xml')

0 голосов
/ 29 июля 2010

функция загрузки возвращает истину и ложь.Попробуйте использовать этот код:

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

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

...