PHP DOMDocument getElementsByTagname?

Это приводит меня в бешенство … Я просто хочу добавить еще один узел img .

 $xml = <<<XML <?xml version="1.0" encoding="UTF-8"?> <gallery> <album tnPath="tn/" lgPath="imm/" fsPath="iml/" > <img src="004.jpg" caption="4th caption" /> <img src="005.jpg" caption="5th caption" /> <img src="006.jpg" caption="6th caption" /> </album> </gallery> XML; $xmlDoc = new DOMDocument(); $xmlDoc->loadXML($xml); $album = $xmlDoc->getElementsByTagname('album')[0]; // Parse error: syntax error, unexpected '[' in /Applications/XAMPP/xamppfiles/htdocs/admin/tests/DOMDoc.php on line 17 $album = $xmlDoc->getElementsByTagname('album'); // Fatal error: Call to undefined method DOMNodeList::appendChild() in /Applications/XAMPP/xamppfiles/htdocs/admin/tests/DOMDoc.php on line 19 $newImg = $xmlDoc->createElement("img"); $album->appendChild($newImg); print $xmlDoc->saveXML(); 

Ошибка:

DOMDocument :: getElementsByTagName не возвращает массив, он возвращает DOMNodeList . Для доступа к своим элементам необходимо использовать метод item :

 $album = $xmlDoc->getElementsByTagname('album')->item(0); 
 // Parse error: syntax error, unexpected '[' in /Applications/XAMPP/xamppfiles/htdocs/admin/tests/DOMDoc.php on line 17 

вы не можете сделать это в php

 $album = $xmlDoc->getElementsByTagname('album')[0]; 

вы должны это сделать

 $albumList = $xmlDoc->getElementsByTagname('album'); $album = $albumList[0]; 

EDIT: getElementsByTagname возвращает объект, чтобы вы могли сделать это (код выше).

 $album = $xmlDoc->getElementsByTagname('album')->item(0); 

Эта ошибка ….

 // Fatal error: Call to undefined method DOMNodeList::appendChild() in /Applications/XAMPP/xamppfiles/htdocs/admin/tests/DOMDoc.php on line 19 

DOMNodeList не имеет метода appendChild. DOMNode делает.