Написать XML-файл с PHP на сервере - PullRequest
0 голосов
/ 27 июня 2011

Я следовал этому примеру и создал php-файл для записи в xml-файл config.xml. Но по какой-то причине, когда я пытаюсь увидеть, что написано в моем XML-файле, я ничего не вижу. Вот мой код -

    $doc=new DOMDocument("1.0");
    //load the file
    $doc->load('localpath/config.xml');
    echo 'Start writing the xml file1';

    //create chapter-element
    $porpoiseconfiguration=$doc->createElement('porpoise-configuration');
   //create title-element
   echo 'Start writing the xml file2';

   $developerid=$doc->createElement('developer-id');
   //insert text to the title
   $developerid->appendChild($doc->createTextNode('00'));

   $developerkey=$doc->createElement('developer-key');
   //insert text to the title
   $developerkey->appendChild($doc->createTextNode('00'));
   echo 'In the 1st middle writing3';

   $connectors=$doc->createElement('connectors');
   $connector=$doc->createElement('connector');
   $name1=$doc->createElement('name');
   $name1->appendChild($doc->createTextNode('Silverspring'));
   $file=$doc->createElement('file');
   $file->appendChild($doc->createTextNode('silverspringpoiconnector.class.php'));
   echo 'In the 1st middle writing4';

   $connector->appendChild($name1);
   $connector->appendChild($file);
   $connectors->appendChild($connector);
   echo 'In the 1st middle writing5';

   $layers=$doc->createElement('layers');
   $layer=$doc->createElement('layer');
   $name2=$doc->createElement('name');
   $name2->appendChild($doc->createTextNode('gamename'));
   $source=$doc->createElement('source');
    $dsn=$doc->createElement('dsn');
   $dsn->appendChild($doc->createTextNode("mysql:host=myhost;dbname='$dbname'"));
    $username=$doc->createElement('username');
   $username->appendChild($doc->createTextNode('myusername'));
    $password=$doc->createElement('password');
   $password->appendChild($doc->createTextNode('mypass'));

   $source->appendChild($dsn);
   $source->appendChild($username);
   $source->appendChild($password);
   $layer->appendChild($source);
   $layer->appendChild($name2);

   $connector2=$doc->createElement('connector');
   $connector2->appendChild($doc->createTextNode('SilverspringPOIConnector'));
   echo 'In the 1st middle writing6';

   $layers->appendChild($layer);
   $layers->appendChild($connector2);
   echo 'In the 1st middle writing7';
   $porpoiseconfiguration->appendChild($developerid);
   $porpoiseconfiguration->appendChild($developerkey);
   $porpoiseconfiguration->appendChild($connector);
   $porpoiseconfiguration->appendChild($layers);
   echo 'In the 1st middle writing8';
   $doc->documentElement->appendChild($porpoiseconfiguration);

   //$doc->documentElement->appendChild($chapter);

    echo 'done writing';
    echo $doc->saveXML();
    $doc->save('localpath/config.xml');

Я проверил это с помощью echos, и нет синтаксической ошибки. Может кто-нибудь сказать, пожалуйста, что я делаю здесь не так?

EDIT ::::::::::::

Я получаю ошибку - Fatal error: Call to a member function appendChild() on a non-object in /var/www/html/PasswARGUI1/myWriteXML.php on line 103
Это указывает на эту строку - $doc->documentElement->appendChild($porpoiseconfiguration);

Пожалуйста, помогите: (

1 Ответ

2 голосов
/ 27 июня 2011
$doc->save('http://myServer/config.xml');

вы не можете писать в http:// расположение, обертка http не поддерживает его.

Вместо этого используйте локальный путь к файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...