<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>Изменение структуры лент и их сообщений - Zend Framework Manual</title>

</head>
<body>
<table width="100%">
    <tr valign="top">
        <td width="85%">
            <table width="100%">
                <tr>
                    <td width="25%" style="text-align: left;">
                    <a href="zend.feed.consuming-atom-single-entry.html">Работа с отдельным сообщением ленты Atom</a>
                    </td>

                    <td width="50%" style="text-align: center;">
                        <div class="up"><span class="up"><a href="zend.feed.html">Zend_Feed</a></span><br />
                        <span class="home"><a href="manual.html">Programmer's Reference Guide</a></span></div>
                    </td>

                    <td width="25%" style="text-align: right;">
                        <div class="next" style="text-align: right; float: right;"><a href="zend.feed.custom-feed.html">Создание собственных классов лент и записей</a></div>
                    </td>
                </tr>
            </table>
<hr />
<div id="zend.feed.modifying-feed" class="section"><div class="info"><h1 class="title">Изменение структуры лент и их сообщений</h1></div>
    

    <p class="para">
        Естетственный синтаксис <code class="code">Zend_Feed</code> используется для создания
        и изменения лент и записей так же, как и для их чтения. Вы можете легко
        преобразовывать свои новые или измененные объекты обратно в
        синтаксически корректный XML для сохранения в файл или отправки серверу.
    </p>

    <div class="example"><div class="info"><p><b>Example #1 Изменение существующего сообщения в ленте</b></p></div>
        
        <div class="programlisting php"><div class="phpcode"><div class="php" style="font-family: monospace;"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$feed</span> = <span style="color: #000000; font-weight: bold;">new</span> Zend_Feed_Atom<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'http://atom.example.com/feed/1'</span><span style="color: #66cc66;">&#41;</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$entry</span> = <span style="color: #0000ff;">$feed</span>-&gt;<span style="color: #006600;">current</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$entry</span>-&gt;<span style="color: #006600;">title</span> = <span style="color: #ff0000;">'This is a new title'</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$entry</span>-&gt;<span style="color: #006600;">author</span>-&gt;<span style="color: #006600;">email</span> = <span style="color: #ff0000;">'my_email@example.com'</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #0000ff;">$entry</span>-&gt;<span style="color: #006600;">saveXML</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li></ol></div></div></div>

        <div class="example-contents"><p>
            Это выведет полное (включая вступление
            <code class="code">&lt;?xml ... &gt;</code>) XML-представление
            новой публикации, включающее в себя необходимые пространства имен
            XML.
        </p></div>
        <div class="example-contents"><p>
            Обратите внимание на то, что вышеприведенный код будет работать
            даже если существующая запись не имеет тег
            <code class="code">&lt;author&gt;</code>. Для присвоения вы можете использовать
            столько уровней доступа через <code class="code">-&gt;</code>, сколько
            для получения; все промежуточные уровни будут созданы автоматически,
            если необходимо.
        </p></div>
    </div>

    <p class="para">
        Если вы хотите использовать в своих сообщениях пространство имен,
        отличное от <code class="code">atom:</code>, <code class="code">rss:</code> или
        <code class="code">osrss:</code>, то вам нужно зарегистрировать его через
        <code class="code">Zend_Feed</code>, используя
        метод <code class="code">Zend_Feed::registerNamespace()</code>. Когда вы изменяете
        существующий элемент, он всегда будет сохранять свое исходное
        пространство имен. Когда вы добавляете новый элемент, то он будет
        включен в пространство имен по умолчанию, если не было указано явно
        другое пространство имен.
    </p>

    <div class="example"><div class="info"><p><b>Example #2 Создание сообщения Atom с элементами в специальном пространстве имен</b></p></div>
        
        <div class="programlisting php"><div class="phpcode"><div class="php" style="font-family: monospace;"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$entry</span> = <span style="color: #000000; font-weight: bold;">new</span> Zend_Feed_Entry_Atom<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// id уже присвоен сервером</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$entry</span>-&gt;<span style="color: #006600;">title</span> = <span style="color: #ff0000;">'my custom entry'</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$entry</span>-&gt;<span style="color: #006600;">author</span>-&gt;<span style="color: #006600;">name</span> = <span style="color: #ff0000;">'Example Author'</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$entry</span>-&gt;<span style="color: #006600;">author</span>-&gt;<span style="color: #006600;">email</span> = <span style="color: #ff0000;">'me@example.com'</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// теперь выполнение специальной части</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Zend_Feed::<span style="color: #006600;">registerNamespace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'myns'</span>, <span style="color: #ff0000;">'http://www.example.com/myns/1.0'</span><span style="color: #66cc66;">&#41;</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$entry</span>-&gt;<span style="color: #66cc66;">&#123;</span><span style="color: #ff0000;">'myns:myelement_one'</span><span style="color: #66cc66;">&#125;</span> = <span style="color: #ff0000;">'my first custom value'</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$entry</span>-&gt;<span style="color: #66cc66;">&#123;</span><span style="color: #ff0000;">'myns:container_elt'</span><span style="color: #66cc66;">&#125;</span>-&gt;<span style="color: #006600;">part1</span> = <span style="color: #ff0000;">'first nested custom part'</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$entry</span>-&gt;<span style="color: #66cc66;">&#123;</span><span style="color: #ff0000;">'myns:container_elt'</span><span style="color: #66cc66;">&#125;</span>-&gt;<span style="color: #006600;">part2</span> = <span style="color: #ff0000;">'second nested custom part'</span>;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #0000ff;">$entry</span>-&gt;<span style="color: #006600;">saveXML</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li></ol></div></div></div>

    </div>
</div>
        <hr />

            <table width="100%">
                <tr>
                    <td width="25%" style="text-align: left;">
                    <a href="zend.feed.consuming-atom-single-entry.html">Работа с отдельным сообщением ленты Atom</a>
                    </td>

                    <td width="50%" style="text-align: center;">
                        <div class="up"><span class="up"><a href="zend.feed.html">Zend_Feed</a></span><br />
                        <span class="home"><a href="manual.html">Programmer's Reference Guide</a></span></div>
                    </td>

                    <td width="25%" style="text-align: right;">
                        <div class="next" style="text-align: right; float: right;"><a href="zend.feed.custom-feed.html">Создание собственных классов лент и записей</a></div>
                    </td>
                </tr>
            </table>
</td>
        <td style="font-size: smaller;" width="15%"> <style type="text/css">
#leftbar {
	float: left;
	width: 186px;
	padding: 5px;
	font-size: smaller;
}
ul.toc {
	margin: 0px 5px 5px 5px;
	padding: 0px;
}
ul.toc li {
	font-size: 85%;
	margin: 1px 0 1px 1px;
	padding: 1px 0 1px 11px;
	list-style-type: none;
	background-repeat: no-repeat;
	background-position: center left;
}
ul.toc li.header {
	font-size: 115%;
	padding: 5px 0px 5px 11px;
	border-bottom: 1px solid #cccccc;
	margin-bottom: 5px;
}
ul.toc li.active {
	font-weight: bold;
}
ul.toc li a {
	text-decoration: none;
}
ul.toc li a:hover {
	text-decoration: underline;
}
</style>
 <ul class="toc">
  <li class="header home"><a href="manual.html">Programmer's Reference Guide</a></li>
  <li class="header up"><a href="manual.html">Programmer's Reference Guide</a></li>
  <li class="header up"><a href="reference.html">Zend Framework Reference</a></li>
  <li class="header up"><a href="zend.feed.html">Zend_Feed</a></li>
  <li><a href="zend.feed.introduction.html">Введение</a></li>
  <li><a href="zend.feed.importing.html">Импортирование лент с помощью Zend_Feed</a></li>
  <li><a href="zend.feed.findFeeds.html">Получение лент из веб-страниц</a></li>
  <li><a href="zend.feed.consuming-rss.html">Работа с лентой RSS</a></li>
  <li><a href="zend.feed.consuming-atom.html">Работа с лентой Atom</a></li>
  <li><a href="zend.feed.consuming-atom-single-entry.html">Работа с отдельным сообщением ленты Atom</a></li>
  <li class="active"><a href="zend.feed.modifying-feed.html">Изменение структуры лент и их сообщений</a></li>
  <li><a href="zend.feed.custom-feed.html">Создание собственных классов лент и записей</a></li>
  <li><a href="zend.feed.reader.html">Zend_Feed_Reader</a></li>
  <li><a href="zend.feed.writer.html">Zend_Feed_Writer</a></li>
  <li><a href="zend.feed.pubsubhubbub.introduction.html">Zend_Feed_Pubsubhubbub</a></li>
 </ul>
 </td>
    </tr>
</table>
</body>
</html>