Source for file Save_ABCD2.05.php
Documentation is available at Save_ABCD2.05.php
* extracting data from original specimen data provider, following ABCD2.05 format, using DOM
* @author Gabriele Droege, DNA Bank Network <contact@dnabank-network.org>
* @copyright Copyright © 2011 DNA Bank Network http://www.dnabank-network.org<br>The contents of this file are subject to the Mozilla Public License Version 1.1
* @license http://www.mozilla.org/MPL/ MPL
$Units =
$dom->getElementsByTagName('Unit');
foreach ($Units as $Unit) {
$UnitID =
$Unit->getElementsByTagName('UnitID');
$SourceInstitutionCode =
$Unit->getElementsByTagName('SourceInstitutionID');
$SourceName =
$Unit->getElementsByTagName('SourceID');
// echo "Unit ID: " . $UnitID->item(0)->nodeValue . "<br>";
// echo "Source Institution: " . $SourceInstitutionCode->item(0)->nodeValue . "<br>";
// echo "Source Collection: " . $SourceName->item(0)->nodeValue . "<br>";
/*----------------------------GATHERING--------------------------------------------------------- */
$Gatherings =
$Unit->getElementsByTagName('Gathering');
foreach ($Gatherings as $Gathering) {
$CollectionDate =
$Gathering->getElementsByTagName('DateTime');
$GatheringAgents =
$Gathering->getElementsByTagName('Agents');
$Locality =
$Gathering->getElementsByTagName('LocalityText');
$Country =
$Gathering->getElementsByTagName('Country');
$NamedArea =
$Gathering->getElementsByTagName('NamedArea'); //if (empty($Country))
$AreaName =
$Gathering->getElementsByTagName('AreaName');
$NearNamedPlaces =
$Gathering->getElementsByTagName('NearNamedPlaces'); //if (empty($Country))
$Altitude =
$Gathering->getElementsByTagName('Altitude');
$Longitude =
$Gathering->getElementsByTagName('LongitudeDecimal');
$Latitude =
$Gathering->getElementsByTagName('LatitudeDecimal');
$SiteCoordinates =
$Gathering->getElementsByTagName('SiteCoordinatesSets'); //if (empty($Longitude & Latitude))
foreach ($Altitude as $AltitudeDetail) {
$AltitudeLowerValue =
$AltitudeDetail->getElementsByTagName('LowerValue');
$AltitudeUpperValue =
$AltitudeDetail->getElementsByTagName('UpperValue');
if(!empty($AltitudeLowerValue))
{$sqlAltitude =
$AltitudeLowerValue->item(0)->nodeValue;}
if(!empty($AltitudeUpperValue))
{ $sqlAltitude .=
$AltitudeUpperValue->item(0)->nodeValue;}
foreach ($CollectionDate as $DateTime) {
$CollectionDateText =
$DateTime->getElementsByTagName('DateText');
$GatheringISODateTimeBegin =
$DateTime->getElementsByTagName('ISODateTimeBegin');
$GatheringDayNumberBegin =
$DateTime->getElementsByTagName('DayNumberBegin');
$GatheringTimeOfDayBegin =
$DateTime->getElementsByTagName('ISOTimeOfDayBegin');
$GatheringISODateTimeEnd =
$DateTime->getElementsByTagName('ISODateTimeEnd');
$GatheringDayNumberEnd =
$DateTime->getElementsByTagName('DayNumberEnd');
$GatheringTimeOfDayEnd =
$DateTime->getElementsByTagName('TimeOfDayEnd');
if(empty($CollectionDateText)) {
// echo "Date2: " . $CollectionDate->item(0)->nodeValue . "<br>"; //if (empty($CollectionDate))
$sqlCollectionDate =
addslashes($CollectionDate->item(0)->nodeValue); }
// echo "Date: " . $CollectionDateText->item(0)->nodeValue . "<br>";
$sqlCollectionDate =
addslashes($CollectionDateText->item(0)->nodeValue); }
if($GatheringISODateTimeBegin) {
$sqlCollectionDate .=
" " .
$GatheringISODateTimeBegin->item(0)->nodeValue; }
if($GatheringDayNumberBegin) {
$sqlCollectionDate .=
" " .
$GatheringDayNumberBegin->item(0)->nodeValue; }
if($GatheringTimeOfDayBegin) {
$sqlCollectionDate .=
" " .
$GatheringTimeOfDayBegin->item(0)->nodeValue; }
if($GatheringISODateTimeEnd) {
$sqlCollectionDate .=
" " .
$GatheringISODateTimeEnd->item(0)->nodeValue; }
if($GatheringDayNumberEnd) {
$sqlCollectionDate .=
" " .
$GatheringDayNumberEnd->item(0)->nodeValue; }
if($GatheringTimeOfDayEnd) {
$sqlCollectionDate .=
" " .
$GatheringTimeOfDayEnd->item(0)->nodeValue; }
foreach ($GatheringAgents as $Collectors) {
$PersonName =
$Collectors->getElementsByTagName('GatheringAgent');
$AgentText =
$Collectors->getElementsByTagName('GatheringAgentsText'); //if (empty($Collectors)
if(empty($PersonName->item(0)->nodeValue)) {
// echo "Person: " . $PersonName->item(0)->nodeValue . "<br>";
// echo "Locality: " . $Locality->item(0)->nodeValue . "<br>";
foreach ($Country as $Countries) {
$CountryName =
$Countries->getElementsByTagName('Name');
$ISO2 =
$Countries->getElementsByTagName('ISO3166Code');
if(empty($CountryName)) {
// echo "Country2: " . $Country->item(0)->nodeValue . "<br>";
$sqlCountryName =
addslashes($Country->item(0)->nodeValue); }
// echo "Country: " . $CountryName->item(0)->nodeValue . "<br>";
$sqlCountryName =
addslashes($CountryName->item(0)->nodeValue); }
// echo "ISO2: " . $ISO2->item(0)->nodeValue . "<br>";
$sqlISO2 =
addslashes($ISO2->item(0)->nodeValue); }
// echo "NearNamedPlaces: " . $NearNamedPlaces->item(0)->nodeValue . "<br>";
$sqlGatheringOther =
addslashes($NearNamedPlaces->item(0)->nodeValue);
$sqlNamedAreas =
addslashes($AreaName->item(0)->nodeValue);
if($sqlNamedAreas =
'Africa' or $sqlNamedAreas =
'Asia' or $sqlNamedAreas =
'Australia' or $sqlNamedAreas =
'Australia and Oceania' or $sqlNamedAreas =
'Europe' or $sqlNamedAreas =
'Middle America' or $sqlNamedAreas =
'South America' or $sqlNamedAreas =
'Middle America' or $sqlNamedAreas =
'Middle and South America' or $sqlNamedAreas =
'North America' or $sqlNamedAreas =
' Atlantic Ocean' or $sqlNamedAreas =
'Arctic Ocean' or $sqlNamedAreas =
'Indian Ocean' or $sqlNamedAreas =
'Pacific Ocean' or $sqlNamedAreas =
'Southern Ocean' or $sqlNamedAreas =
'Landlocked Sea')
{ $sqlContinentOrOcean =
addslashes($AreaName->item(0)->nodeValue); }
// echo "NamedAreas: " . $NamedAreas->item(0)->nodeValue . "<br>";
$sqlGatheringOther =
addslashes($NamedArea->item(0)->nodeValue);
// echo "Longitude: " . $Longitude->item(0)->nodeValue . "<br>";
$sqlLongitude =
$Longitude->item(0)->nodeValue;
// echo "Latitude: " . $Latitude->item(0)->nodeValue . "<br>";
$sqlLatitude =
$Latitude->item(0)->nodeValue;
/*----------------------------IDENTIFICATIONS--------------------------------------------------------- */
$Identifications =
$Unit->getElementsByTagName('Identification');
foreach ($Identifications as $IndexIdentification =>
$Identification) { // more than one Identification possible
$TaxaIdentified =
$Identification->getElementsByTagName('TaxonIdentified');
$Preferred =
$Identification->getElementsByTagName('PreferredFlag');
foreach ($TaxaIdentified as $TaxonIdentified) {
$NameAuthorYearString =
$TaxonIdentified->getElementsByTagName('FullScientificNameString'); // Name, Author, Year
$HigherTaxa =
$TaxonIdentified->getElementsByTagName('HigherTaxon');
$ScientificNames =
$TaxonIdentified->getElementsByTagName('ScientificName');
// echo "Name All: " . $NameAuthorYearString->item(0)->nodeValue . "<br>";
// echo "Preferred: " . $Preferred->item(0)->nodeValue . "<br>";
$sqlPreferredIdentificationFlag[] =
$Preferred->item(0)->nodeValue;
foreach ($HigherTaxa as $index =>
$HigherTaxon1) { // more than one HigherTaxon per Identification possible
$HigherTaxon =
$HigherTaxon1->getElementsByTagName('HigherTaxonName');
$TaxonRank =
$HigherTaxon1->getElementsByTagName('HigherTaxonRank');
// echo "Higher Taxon: " .$HigherTaxon->item(0)->nodeValue." (".$TaxonRank->item(0)->nodeValue.")<br>";
$sqlHigherTaxon[] =
$HigherTaxon->item(0)->nodeValue;
$sqlHigherTaxonRank[] =
$TaxonRank->item(0)->nodeValue;
foreach ($ScientificNames as $ScientificName) {
// $ScientificNamesAtomized = $ScientificName->getElementsByTagName('NameAtomised');
// foreach ($ScientificNamesAtomized as $ScientificNameAtomized) {
$Bacteria =
$ScientificName->getElementsByTagName('Bacterial');
$Botany =
$ScientificName->getElementsByTagName('Botanical');
$Zoology =
$ScientificName->getElementsByTagName('Zoological');
$Virology =
$ScientificName->getElementsByTagName('Viral');
foreach ($Bacteria as $Bacterical) {
$GenusBac =
$Bacterical->getElementsByTagName('GenusOrMonomial');
$SubgenusBac =
$Bacterical->getElementsByTagName('Subgenus');
$SpeciesEpithetBac =
$Bacterical->getElementsByTagName('SpeciesEpithet');
$SubspeciesEpithetBac =
$Bacterical->getElementsByTagName('SubspeciesEpithet');
// echo "Genus: " . $GenusBac->item(0)->nodeValue . "<br>";
$sqlGenus[] =
$GenusBac->item(0)->nodeValue;
// echo "Subgenus: " . $SubgenusBac->item(0)->nodeValue . "<br>";
$sqlSubgenus[] =
$SubgenusBac->item(0)->nodeValue;
// echo "Spec.Epi: " . $SpeciesEpithetBac->item(0)->nodeValue . "<br>";
$sqlFirstEpithet[] =
$SpeciesEpithetBac->item(0)->nodeValue;
// echo "SspEpi: " . $SubspeciesEpithetBac->item(0)->nodeValue . "<br>";
$sqlSecondEpithet[] =
$SubspeciesEpithetBac->item(0)->nodeValue;
if(empty($sqlGenus) and empty($sqlSubgenus) and empty($sqlFirstEpithet) and empty($sqlSubspecies))
// echo "Bacteria_All: " . $Bacteria->item(0)->nodeValue . "<br>"; //if (empty -> $GenusBac, $SubgenusBac, $SpeciesEpithetBac, $SubspeciesEpithetBac)
$sqlName_All[] =
$Bacteria->item(0)->nodeValue; }
foreach ($Botany as $Botanical) {
$GenusBot =
$Botanical->getElementsByTagName('GenusOrMonomial');
$FirstEpithet =
$Botanical->getElementsByTagName('FirstEpithet');
$SecondEpithet =
$Botanical->getElementsByTagName('InfraspecificEpithet');
$Rank =
$Botanical->getElementsByTagName('Rank');
$HybridFlag =
$Botanical->getElementsByTagName('HybridFlag');
// echo "Genus: " . $GenusBot->item(0)->nodeValue . "<br>";
$sqlGenus[] =
$GenusBot->item(0)->nodeValue;
// echo "Spec.Epi: " . $FirstEpithet->item(0)->nodeValue . "<br>";
$sqlFirstEpithet[] =
$FirstEpithet->item(0)->nodeValue;
// echo "Rank: " . $Rank->item(0)->nodeValue . "<br>";
$sqlRank[] =
$Rank->item(0)->nodeValue;
// echo "Sec.Epi: " . $SecondEpithet->item(0)->nodeValue . "<br>";
$sqlSecondEpithet[] =
$SecondEpithet->item(0)->nodeValue;
// echo "Hybrid: " . $HybridFlag->item(0)->nodeValue . "<br>";
$sqlHybridFlag[] =
$HybridFlag->item(0)->nodeValue;
if(empty($sqlGenus) and empty($sqlFirstEpithet) and empty($sqlRank) and empty($sqlSecondEpithet))
// echo "Botany_All: " . $Botany->item(0)->nodeValue . "<br>"; //if (empty -> $GenusBot, $FirstEpithet, $SecondEpithet, $Rank, $HybridFlag)
$sqlName_All[] =
$Botany->item(0)->nodeValue; }
foreach ($Zoology as $Zoological =>
$Zoo) {
$GenusZoo =
$Zoo->getElementsByTagName('GenusOrMonomial');
$SubgenusZoo =
$Zoo->getElementsByTagName('Subgenus');
$SpeciesEpithetZoo =
$Zoo->getElementsByTagName('SpeciesEpithet');
$SubspeciesEpithetZoo =
$Zoo->getElementsByTagName('SubspeciesEpithet');
// echo "Genus: " .$GenusZoo->item(0)->nodeValue."<br>";
$sqlGenus[] =
$GenusZoo->item(0)->nodeValue;
// echo "Subgenus: " . $SubgenusZoo->item(0)->nodeValue . "<br>";
$sqlSubgenus[] =
$SubgenusZoo->item(0)->nodeValue;
// echo "Spec.Epi: " . $SpeciesEpithetZoo->item(0)->nodeValue . "<br>";
$sqlFirstEpithet[] =
$SpeciesEpithetZoo->item(0)->nodeValue;
// echo "SspEpi: " . $SubspeciesEpithetZoo->item(0)->nodeValue . "<br>";
$sqlSecondEpithet[] =
$SubspeciesEpithetZoo->item(0)->nodeValue;
if(empty($sqlGenus) and empty($sqlSubgenus) and empty($sqlFirstEpithet) and empty($sqlSecondEpithet))
// echo "Zoology_All: " . $Zoo->nodeValue . "<br>"; //if (empty -> $GenusZ, $SubgenusZ, $SpeciesEpithetZ, $SubspeciesEpithetZ)
$sqlName_All[] =
$Zoology->item(0)->nodeValue; }
foreach ($Virology as $Viral) {
$GenusV =
$Viral->getElementsByTagName('GenusOrMonomial');
// echo "Genus: " . $GenusV->item(0)->nodeValue . "<br>";
$sqlGenus[] =
$GenusV->item(0)->nodeValue;
// echo "Virology_All: " . $Virology->item(0)->nodeValue . "<br>";
$sqlName_All[] =
$Virology->item(0)->nodeValue; }
// } //foreach $ScientificNamesAtomized
} //foreach $ScientificNames
} //foreach $TaxaIdentified
} //foreach $Identifications
/*----------------------------------------MULTI MEDIA OBJECTS -----------------------------*/
$MultiMediaObjects =
$Unit->getElementsByTagName('MultiMediaObject');
foreach ($MultiMediaObjects as $IndexMultiMediaObjects =>
$MultiMediaObject) { // more than one Identification possible
$FileURI =
$MultiMediaObject->getElementsByTagName('FileURI');
$ProductURI =
$MultiMediaObject->getElementsByTagName('ProductURI');
$sqlFileURI[] =
$FileURI->item(0)->nodeValue;
$sqlProductURI[] =
$ProductURI->item(0)->nodeValue;
} // foreach $MultiMediaObjects
$TypeDesignations =
$Unit->get_elements_by_tagname('NomenclaturalTypeDesignation');
foreach ($TypeDesignations as $TypeDesignation) {
$TypeStatus =
$TypeDesignation->get_elements_by_tagname('TypeStatus');
$sqlTypeStatus =
$TypeStatus[0]->get_content();
Documentation generated on Tue, 29 Nov 2011 10:45:08 +0100 by phpDocumentor 1.4.3