LINUX.ORG.RU

PHP: Не могу добавить узел в SimpleXML


0

1

Пишу следующий код:

<?php 

  $xmlText='<?xml version="1.0" encoding="utf-8"?>'."\n".'<root></root>';
  $xml=new SimpleXMLElement($xmlText);

  echo $xml->asXML();
  
  $rules=$xml->root->addChild('rules'); 
  $rules->addAttribute('val', "classic"); 

  echo $xml->asXML();
?> 

В ответ ошибка:

PHP Warning:  SimpleXMLElement::addChild(): Cannot add child. Parent is not a permanent member of the XML tree in /media/mx_120_part_2/home/xi/work/game_ksi/webwork/logoball/misc/txt/06/xml.php on line 8

PHP Fatal error:  Call to a member function addAttribute() on a non-object in /media/mx_120_part_2/home/xi/work/game_ksi/webwork/logoball/misc/txt/06/xml.php on line 9

Что-то не понимаю, почему вылазит такая ошибка?

★★★★★
$xml = new SimpleXMLElement('<root/>');
$rules = $xml -> addChild ('rules');
$rules -> addAttribute ('val', 'classic');
metrokto ★★
()

Еще можно так:

$xmlText = '<?xml version="1.0" encoding="utf-8"?><root/>';
$xml = new SimpleXMLElement ($xmlText);
$root = $xml -> xpath ('/root');
$rules = $root[0] -> addChild ('rules');
$rules -> addAttribute ('val', "classic");

metrokto ★★
()

Вместо кусков кода и извратов с XPath можно было написать, что к корневому элементу обращаться не надо ибо он подразумевается по-умолчанию.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от metrokto

Я тебе желаю, чтобы на все твои вопросы «почему», вместо ответов по существу тебе давали куски кода.

Xintrea ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.