10.7. Feed en Entry structuren wijzigen
Terug | Hoofdstuk 10. Zend_Feed | Volgende

## 10.7. Feed en Entry structuren wijzigen

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 10.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 10.6. Een Atom Entry met elementen van een aangepaste namespace

    <?php

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

    ?>

Terug | Omhoog | Volgende
10.6. Een enkele Atom entry lezen | Begin | 10.8. Aangepaste Feed en Entry klassen