przewiń do treści

PHP, MySQL i MVC. Tworzenie witryn WWW opartych na bazie danych

Włodzimierz Gajda

$unserializer = new XML_Unserializer();
$options = array(
    'parseAttributes' => true,
    'forceEnum' => array('gromada', 'rzad', 'rodzina'),
);
$unserializer->setOptions($options);
$unserializer->unserialize('klasyfikacja-zwierzat.xml', true);
$dane = $unserializer->getUnserializedData();

foreach ($dane['gromada'] as $gromada) {

    $gromada_dane = array(
        'gromada' => $gromada['nazwa'],
        'slug' => string2slug($gromada['nazwa'])
    );
    $objGromada = GromadaPeer::insertIfNotExists($gromada_dane);

    foreach ($gromada['rzad'] as $rzad) {
    
        $rzad_dane = array(
            'rzad' => $rzad['nazwa'],
            'slug' => string2slug($rzad['nazwa']),
            'gromada_id' => $objGromada->getGromadaId()
        );

        $objRzad = RzadPeer::insertIfNotExists($rzad_dane);

        foreach ($rzad['rodzina'] as $rodzina) {
        
            $rodzina_dane = array(
                'rodzina' => $rodzina['nazwa'],
                'slug' => string2slug($rodzina['nazwa']),
                'rzad_id' => $objRzad->getRzadId()
            );

            $objRodzina = RodzinaPeer::insertIfNotExists($rodzina_dane);
        }
    }
}

Listing 28.17. Wypełnianie bazy danych na podstawie pliku klasyfikacja-zwierzat.xml

Rozdział 28. XML_Serializer, XML_Unserializer - dwukierunkowe transformacje tablic w XML

listing-28-17.txt

Reklama

Szkolenia z Symfony 2.0