2

我如何使用 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 
4

3 回答 3

10

不要对 dom 这样做,自己检查一下:

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

保存到文件将在以后自动完成$xmldoc->save();

于 2010-07-29T11:33:27.797 回答
2

使用file_exists('sample.xml')

于 2010-07-29T11:32:01.823 回答
0

load 函数返回 true 和 false。尝试使用此代码:

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

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

于 2010-07-29T11:35:40.240 回答