2010-06-03 3 views

ответ

5

Вы посмотрели основные documentation examples?

Оттуда:

include 'example.php'; 
$xml = new SimpleXMLElement($xmlstr); 

$xml->movie[0]->characters->character[0]->name = 'Miss Coder'; 

echo $xml->asXML(); 
+1

Что делать, если мне нужно установить текст элемента, не зная его родителя? другими словами, элемент уже создан, возможно, с некоторыми атрибутами. – user121196

+0

Для этого вы используете синтаксис XPath для создания запроса типа: foreach ($ xml-> xpath ('// character') как $ character) { echo $ character-> name, 'playing by', $ character -> актер, '
'; } – alxp

2
$xml = SimpleXMLElement('<a><b><c></c></b></a>'); 
$foundNodes = $xml->xpath('//c'); 
$foundNode = $foundNodes[0]; 
$foundNode->{0} = "This text will be put inside of c tag."; 

$xml->asXML(); 
// will output <a><b><c>This text will be put inside of c tag.</c></b></a> 

Более подробно о моих поисках этого ответа здесь:

+3

'-> {0}' больше не работает в PHP 7 – crishoj

7

Скажем, $ узел является SimpleXMLElement. Этот код:

$node->{0} = "some string" 

приведет к дополнительному childNode в PHP 7 вместо того, чтобы устанавливать текстовое содержимое для $ node. Использование:

$node[0] = "some string" 

вместо этого.

+1

Это должен быть принятый ответ для PHP 7 – crishoj

+0

Fab ответ для PHP7! – Ukuser32