Zend_Feed-ModifyingFeed.xml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <sect1 id="zend.feed.modifying-feed">
  2. <title>修改Feed和条目结构</title>
  3. <para>
  4. <code>Zend_Feed</code>自然的语法既能扩展用于构建和修改Feed以及条目又能非常容易的读取它们。你能容易的把你的新的或者修改过的对象转化成一个结构完整的XML格式保存到文件或者发送到服务器。
  5. </para>
  6. <example>
  7. <title>修改一个已存在的条目</title>
  8. <programlisting role="php"><![CDATA[
  9. $feed = new Zend_Feed_Atom('http://atom.example.com/feed/1');
  10. $entry = $feed->current();
  11. $entry->title = 'This is a new title';
  12. $entry->author->email = 'my_email@example.com';
  13. echo $entry->saveXML();
  14. ]]>
  15. </programlisting>
  16. <para>
  17. 这段代码将输出一个新条目完整(包括<code>&lt;?xml ... &gt;</code> 声明)的包含所有必要命名空间的XML格式。
  18. </para>
  19. <para>
  20. 注意上面的代码即使条目中不存在一个author标记也能工作。在开始赋值之前你就能用多层的<code>-&gt;</code>访问你想要访问的内容了,如果必要程序将自动为你创建所有中间节点。
  21. </para>
  22. </example>
  23. <para>
  24. 如果你想在你的条目中用一个与<code>atom:</code>, <code>rss:</code>, 或 <code>osrss:</code>不同的命名空间,你必须用<code>Zend_Feed</code>类的<code>Zend_Feed::registerNamespace()</code>方法注册你的命名空间。当你修改一个已存在的元素时,它将维持最初的命名空间。当添加一个新元素时,如果你不特别地指定别的命名空间则程序将使用默认的命名空间。
  25. </para>
  26. <example>
  27. <title>用自定义的命名空间创建一个Atom条目元素</title>
  28. <programlisting role="php"><![CDATA[
  29. $entry = new Zend_Feed_Entry_Atom();
  30. // Atom的id总是由服务器分配
  31. $entry->title = 'my custom entry';
  32. $entry->author->name = 'Example Author';
  33. $entry->author->email = 'me@example.com';
  34. // 完成自定义部分
  35. Zend_Feed::registerNamespace('myns', 'http://www.example.com/myns/1.0');
  36. $entry->{'myns:myelement_one'} = 'my first custom value';
  37. $entry->{'myns:container_elt'}->part1 = 'first nested custom part';
  38. $entry->{'myns:container_elt'}->part2 = 'second nested custom part';
  39. echo $entry->saveXML();
  40. ?>
  41. ]]>
  42. </programlisting>
  43. </example>
  44. </sect1>
  45. <!--
  46. vim:se ts=4 sw=4 et:
  47. -->