De intuïtieve syntax van Zend_Feed
breidt zich uit voor het bouwen en wijzigen van feeds en
entries, naast het lezen ervan. Je kan gemakkelijk je nieuwe of gewijzigde objecten in
goedgevormde XML terugsturen om het in een bestand op te slaan of naar een server te sturen.
Voorbeeld 12.5. Wijzigen van een bestaande Feed Entry
<?php $feed = new Zend_Feed_Atom('http://atom.example.com/feed/1'); $entry = $feed->current(); $entry->title = 'Dit is een nieuwe titel'; $entry->author->email = 'my_email@example.com'; echo $entry->saveXML(); ?>
Dit zal een volledige (inclusief <?xml ... >
proloog) XML representatie van de
nieuwe entry weergeven, met inbegrip van alle nodige XML namespaces.
Merk op dat het bovenstaande zelfs zal werken indien de oorspronkelijke entry nog geen author
afbakening heeft. Je kan zoveel niveaus van ->
aandoen als je wil voor een toewijzing te
doen; alle niveaus zullen automatisch worden aangemaakt indien nodig.
Als je een andere namespace wil gebruiken dan atom:
, rss:
of osrss:
in je entry, moet je de namespace registreren aan Zend_Feed
door
Zend_Feed::registerNamespace()
te gebruiken. Als je een bestaand element wil wijzigen zal het
steeds zijn oorspronkelijke namespace behouden. Als je een nieuw element toevoegt zal het in de standaard
namespace gaan als je niet uitdrukkelijk een andere namespace toewijst.
Voorbeeld 12.6. Een Atom Entry met elementen van een aangepaste namespace
<?php $entry = new Zend_Feed_Entry_Atom(); // id wordt altijd via de server toegewezen in Atom $entry->title = 'mijn aangepaste entry'; $entry->author->name = 'Voorbeeldauteur'; $entry->author->email = 'me@example.com'; // Doe nu de aanpassing Zend_Feed::registerNamespace('myns', 'http://www.example.com/myns/1.0'); $entry->{'myns:myelement_one'} = 'mijn eerste aangepaste waarde'; $entry->{'myns:container_elt'}->part1 = 'eerste genesteld aangepast deel'; $entry->{'myns:container_elt'}->part2 = 'tweede genesteld aangepast deel'; echo $entry->saveXML(); ?>