public function poiAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); echo "<pre>"; $filename = "data/lonelyplanet-london-gapdaemon.xml"; $xml_parser = new Base_Xml_Parser(null, $filename); $destinationName = $xml_parser->Data['destination_name']; //----insert into continent $continent_id = 0; $continentM = new Application_Model_Continent(); $continent = $continentM->fetchRow("name='{$destinationName}'"); if (false !== $continent) { $continent_id = $continent->getId(); } //-------------------------- //----insert into country $country_id = 0; $countryM = new Application_Model_Country(); $country = $countryM->fetchRow("name='{$destinationName}'"); if (false !== $country) { $country_id = $country->getId(); } //------------------------------- ///------insert into city $city_id = 0; $cityM = new Application_Model_City(); $city = $cityM->fetchRow("name='{$destinationName}'"); if (false !== $city) { $city_id = $city->getId(); } //------------------------ if ($city_id > 0) { //it is city $locationType = "city"; $locationId = $city_id; } else { if ($country_id > 0) { //it is country $locationType = "country"; $locationId = $country_id; } else { if ($continent_id > 0) { //it is continent $locationType = "continent"; $locationId = $continent_id; } else { //create a place/city and get the reference id/location id ///------insert into city $city_id = 0; $cityM = new Application_Model_City(); $cityM->setName($destinationName); $cityM->setCountryId(0); $city_id = $cityM->save(); //------------------------ $locationType = "other"; $locationId = $city_id; } } } error_reporting(E_ALL & ~E_NOTICE); foreach ($xml_parser->Data['pois']['poi'] as $poi) { $poiM = new Application_Model_Poi(); $poiM->setLocationId($locationId)->setLocationType($locationType)->setName($poi['poi_name'])->setAddress(serialize($poi['address_parts']['address_part']))->setPostcode($poi['address_postcode'])->setTelfaxs(serialize($poi['telfaxs']['telfax']))->setEmail($poi['poi_email'])->setWeb($poi['poi_web'])->setTransportModes(serialize($poi['transport_modes']['transport_mode']))->setPriceRange($poi['price_range'])->setReviewFull($poi['review_full']['p'])->setReviewSummary($poi['review_summary']['p'])->setBookable($poi['bookable']['value'])->setXCoordinate($poi['feature_x_coord'])->setYCoordinate($poi['feature_y_coord'])->setFeatureId($poi['feature_id'])->setKeywords(serialize($poi['keywords']['keyword'])); $poiM->save(); } }
public function xmlAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); echo "<pre>"; $filename = "data/sample - Chiang Mai.xml"; $xml_parser = new Base_Xml_Parser(null, $filename); $continentName = $xml_parser->Data['identification']['geoTag1']; $countryName = $xml_parser->Data['identification']['geoTag2']; $cityName = $xml_parser->Data['identification']['geoTag3']; //----insert into continent $continent_id = 0; $continentM = new Application_Model_Continent(); $continent = $continentM->fetchRow("name='{$continentName}'"); if (false === $continent) { $continentM->setName($continentName); $continent_id = $continentM->save(); } else { $continent_id = $continent->getId(); } //-------------------------- //----insert into country $country_id = 0; $countryM = new Application_Model_Country(); $country = $countryM->fetchRow("name='{$countryName}' and continent_id='{$continent_id}'"); if (false === $country) { $countryM->setName($countryName); $countryM->setContinentId($continent_id); $country_id = $countryM->save(); } else { $country_id = $country->getId(); } //------------------------------- ///------insert into city $city_id = 0; $cityM = new Application_Model_City(); $city = $cityM->fetchRow("name='{$cityName}' and country_id='{$country_id}'"); if (false === $city) { $cityM->setName($cityName); $cityM->setCountryId($country_id); $city_id = $cityM->save(); } else { $city_id = $city->getId(); } //------------------------ if ($continent_id > 0 && $country_id > 0 && $city_id > 0) { //it is city $locationType = "city"; $locationId = $city_id; } else { if ($continent_id > 0 && $country_id > 0) { //it is country $locationType = "country"; $locationId = $country_id; } else { if ($continent_id > 0) { //it is continent $locationType = "continent"; $locationId = $continent_id; } } } $title = $xml_parser->Data['content']['title']; $introduction = $xml_parser->Data['content']['introduction']; $destinationM = new Application_Model_Destination(); $destinationM->setTitle($title); $destinationM->setIntroduction($introduction); $destinationM->setLocationId($locationId); $destinationM->setLocationType($locationType); $destination_id = $destinationM->save(); foreach ($xml_parser->Data['content']['experiences'] as $experiences) { foreach ($experiences as $_item) { //print_r($_item);die(); $experiencesM = new Application_Model_Experiences(); $experiencesM->setTitle($_item['title']); $experiencesM->setDestinationId($destination_id); $experiencesM->setCopy($_item['copy']); $experiencesM->save(); } } foreach ($xml_parser->Data['content']['practicalities'] as $practicalities) { foreach ($practicalities as $_item) { $practicalitiesM = new Application_Model_Practicalities(); $practicalitiesM->setTitle($_item['title']); $practicalitiesM->setDestinationId($destination_id); $practicalitiesM->setCopy($_item['copy']); $practicalitiesM->save(); } } foreach ($xml_parser->Data['content']['eatSleepDrink'] as $eatsleepdrink) { foreach ($eatsleepdrink as $_item) { //print_r($_item);die(); $EatSleepDrinkM = new Application_Model_EatSleepDrink(); $EatSleepDrinkM->setTitle($_item['title']); $EatSleepDrinkM->setDestinationId($destination_id); $EatSleepDrinkM->setBackPackerCopy($_item['backpackerCopy']); $EatSleepDrinkM->setLocalCopy($_item['localCopy']); $EatSleepDrinkM->save(); } } //print_r($xml_parser->Data); }