Введение в Zend Framework

 Learning Zend Framework

appendix

 Zend Framework Reference


  • Zend_Gdata
  • Zend_Http
  • Zend_InfoCard
  • Zend_Json
  • Zend_Layout
  • Zend_Ldap
  • Zend_Loader
  • Zend_Locale
  • Zend_Log
  • Zend_Mail
  • Zend_Markup
  • Zend_Measure
  • Zend_Memory
  • Zend_Mime
  • Zend_Navigation
  • Zend_Oauth
  • Zend_OpenId
  • Zend_Paginator
  • Zend_Pdf
  • Zend_ProgressBar
  • Zend_Queue
  • Zend_Reflection
  • Zend_Registry
  • Zend_Rest

  • Zend_Search_Lucene
  • Zend_Serializer
  • Zend_Server
  • Zend_Service
  • Zend_Session
  • Zend_Soap
  • Zend_Tag
  • Zend_Test
  • Zend_Text
  • Zend_TimeSync
  • Zend_Tool
  • Zend_Tool_Framework
  • Zend_Tool_Project
  • Zend_Translate
  • Zend_Uri
  • Zend_Validate
  • Zend_Version
  • Zend_View
  • Zend_Wildfire
  • Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Ttranslation 27.4% Update 2010-11-28 - Revision 23238 - Version ZF 1.11.x

    32.7. Изменение структуры лент и их сообщений

    Естетственный синтаксис Zend_Feed используется для создания и изменения лент и записей так же, как и для их чтения. Вы можете легко преобразовывать свои новые или измененные объекты обратно в синтаксически корректный XML для сохранения в файл или отправки серверу.

    Пример 32.5. Изменение существующего сообщения в ленте

    $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: или osrss:, то вам нужно зарегистрировать его через Zend_Feed, используя метод Zend_Feed::registerNamespace(). Когда вы изменяете существующий элемент, он всегда будет сохранять свое исходное пространство имен. Когда вы добавляете новый элемент, то он будет включен в пространство имен по умолчанию, если не было указано явно другое пространство имен.

    Пример 32.6. Создание сообщения Atom с элементами в специальном пространстве имен

    $entry = new Zend_Feed_Entry_Atom();
    // 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();

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...