| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <sect1 id="zend.feed.modifying-feed">
- <title>Modifying Feed and Entry structures</title>
- <para>
- <classname>Zend_Feed</classname>'s natural syntax extends to constructing and modifying
- feeds and entries as well as reading them. You can easily turn your new or modified objects
- back into well-formed <acronym>XML</acronym> for saving to a file or sending to a server.
- </para>
- <example id="zend.feed.modifying-feed.example.modifying">
- <title>Modifying an Existing Feed Entry</title>
- <programlisting language="php"><![CDATA[
- $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();
- ]]></programlisting>
- <para>
- This will output a full (includes <command><?xml ... ></command> prologue)
- <acronym>XML</acronym> representation of the new entry, including any necessary
- <acronym>XML</acronym> namespaces.
- </para>
- <para>
- Note that the above will work even if the existing entry does not already have an author
- tag. You can use as many levels of <command>-></command> access as you like before
- getting to an assignment; all of the intervening levels will be created for you
- automatically if necessary.
- </para>
- </example>
- <para>
- If you want to use a namespace other than <command>atom:</command>, <command>rss:</command>,
- or <command>osrss:</command> in your entry, you need to register the namespace with
- <classname>Zend_Feed</classname> using
- <methodname>Zend_Feed::registerNamespace()</methodname>. When you are modifying an existing
- element, it will always maintain its original namespace. When adding a new element, it will
- go into the default namespace if you do not explicitly specify another namespace.
- </para>
- <example id="zend.feed.modifying-feed.example.creating">
- <title>Creating an Atom Entry with Elements of Custom Namespaces</title>
- <programlisting language="php"><![CDATA[
- $entry = new Zend_Feed_Entry_Atom();
- // id is always assigned by the server in Atom
- $entry->title = 'my custom entry';
- $entry->author->name = 'Example Author';
- $entry->author->email = 'me@example.com';
- // Now do the custom part.
- 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();
- ]]></programlisting>
- </example>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|