Естетственный синтаксис Zend_Feed используется для создания
и изменения лент и записей так же, как и для их чтения. Вы можете легко преобразовывать
свои новые или измененные объекты обратно в валидный XML для сохранения в файл
или отправки серверу.
Пример 6.5. Изменение существующей публикации в ленте
<?php
$feed = new Zend_Feed_Atom('http://atom.example.com/feed/1');
$entry = $feed->current();
$entry->title = 'This is a new title';
$entry->author->email = 'my_email@example.com';
echo $entry->saveXML();
?>
Это выведет полное (включая вступление <?xml ... >) XML-представление
новой публикации, включая необходимые пространства имен XML.
Обратите внимание на то, что вышеприведенный код будет работать, даже если
существующая запись не имеет тег <author>. Для присвоения вы
можете использовать столько уровней доступа через ->, сколько
для получения; все промежуточные уровни будут созданы автоматически, если необходимо.
Если вы хотите использовать в своих записях пространство имен, отличное от
atom:, rss:, or osrss:, то вам нужно зарегистрировать
его через Zend_Feed, используя Zend_Feed::registerNamespace().
Когда вы изменяете существующий элемент, он всегда будет сохранять
свое исходное пространство имен. Когда добавляете новый элемент, он будет включен в
пространство имен по умолчанию, если вы не укажете явно другое пространство имен.
Пример 6.6. Создание публикации Atom с элементами в специальном пространстве имен
<?php
$entry = new Zend_Feed_EntryAtom();
// id уже присвоен сервером
$entry->title = 'my custom entry';
$entry->author->name = 'Example Author';
$entry->author->email = 'me@example.com';
// теперь выполнение специальной части
Zend_Feed::registerNamespace('myns', 'http://www.example.com/myns/1.0');
$entry->{'myns:myelement_one'} = 'my first custom value';
$entry->{'myns:container_elt'}->part1 = 'first nested custom part';
$entry->{'myns:container_elt'}->part2 = 'second nested custom part';
echo $entry->saveXML();
?>