#!/usr/bin/perl

$infile="sampleJSONXML.xml";
$geoJSON= "geoJson.json";

open INXML, "$infile";
open OUTJSON, ">>$geoJSON";

while (<INXML>){
print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n";
$line=$_;
$lenLine=length($line);

print "\$line= $line\n";
print "\$lenLine = $lenLine\n";

#if ($line =~/profile_type="vector"/){

#?xml version=\"1.0\" encoding=\"ISO-8859-1\"--------------------------------------------------------------------------------
if ($line eq "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>"){
print "skipping <?xml version=\"1.0\" encoding=\"ISO-8859-1\"?> \n";
}elsif($line =~/encoding/){
print "skipping <?xml version=\"1.0\" encoding=\"ISO-8859-1\"?> 222222222222222222222222222222 \n";

#PODVer1_1------------------------------------------------------------------------------------------------------
}elsif($line =~/\/PODVer1_1/){
print OUTJSON "},";
print "end POD tag\n";
}elsif($line =~/PODVer1_1/){
print OUTJSON "{";
print "start POD tag\n";

#type--------------------------------------------------------------------------------------------------
}elsif($line =~/<type>/){

if ($spatial eq 'yes'){
print OUTJSON "\\\"type\\\":";
$spatial="no";
#}elsif($dist eq 'yes'){

}else{
$righbracLoc=index($line,">")+1;
$slashLoc=index($line, "/");
$length=$slashLoc-$righbracLoc-1;
$elText=substr($line,$righbracLoc,$length);
print "\$elText = $elText\n";
#print OUTJSON "type: \"$elText\",";
#print OUTJSON "\"type\": \"$elText\",";
print OUTJSON "\"\@type\": \"$elText\",";
#print OUTJSON "done!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
};


#keyword----------------------------------------------------------------------------------------------------
}elsif($line =~/keyword/){
#print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n";
if ($line =~/<keywordItem/){#keywordItem
$leftBracket=index($line,"<");
$righbracLoc=index($line,">");
$slashLoc=index($line, "/");
$length=$slashLoc-$righbracLoc-2;
$elText=substr($line,$righbracLoc+1,$length);
print "inserting the keyword: $elText\n";
print OUTJSON"\"$elText\",";
#elsif($line =~/\/keywordItem/){
#print "dealing with the end keywordItem tag \n";
#print OUTJSON"],"
}elsif($line =~/\/keyword/){
print OUTJSON "],";
print "dealing with $line (end tag)\n"
}else{
print OUTJSON "\"keyword\": [";
print "dealing with $line (start  tag)\n";
};
#print "-----------------------------------------------------------------------\n";

#description-------------------------------------------------------------------------------
}elsif($line =~/<\/description>/){
print "dealing with the end description tag!!!!!!!!!!!!!!!!\n";

$locEndSlash=index($line,"/");
$elTextB= substr($line,0,$locEndSlash-1);
print "\$elTextB = $elTextB\n";
$elTextC = $elText . $elTextB;

print OUTJSON "\"description\": \" $elTextC \",";

}elsif($line =~/<description>/){
$leftBracket=index($line,"<");
$righbracLoc=index($line,">");
$slashLoc=index($line, "/");
$length=$slashLoc-$righbracLoc-2;
$elText=substr($line,$righbracLoc+1,$length);
print "dealing with the description start tag !!!!!!!!!!!!!!!!!!!!!!!!\n";

}elsif($lenLine <3){
#skip
print "skipping this line!!!!!!!!!!!!!!!!!!!!!!!!!\n";

#publisher--------------------------------------------------------------------
}elsif($line =~/<\/publisher>/){
#print OUTJSON "},";

foreach $subOrgArray(@subOrgArray){
print OUTJSON "$subOrgArray";
};

print OUTJSON "},";

}elsif($line =~/<publisher>/){
print OUTJSON "\"publisher\":{";
}elsif($line =~/name/){
$leftBracket=index($line,"<");
$righbracLoc=index($line,">");
$slashLoc=index($line, "/");
$length=$slashLoc-$righbracLoc-2;
$elText=substr($line,$righbracLoc+1,$length);
print OUTJSON "\"name\": \"$elText\",";
#subOrganization----------------------------------------------------
}elsif($line =~/subOrganizationOf/){
$leftBracket=index($line,"<");
$righbracLoc=index($line,">");
$slashLoc=index($line, "/");
$length=$slashLoc-$righbracLoc-2;
$elText=substr($line,$righbracLoc+1,$length);
$elLength=$righbracLoc-$leftBracket-1;
$elementMain=substr($line,$leftBracket+1, $elLength);
#elLength=$righbracLoc-$leftBracket;
$newElement= "\"" . $elementMain .  "\":{";
$subOrgName="\"name\":";
print OUTJSON "$newElement $subOrgName \"$elText\",";

$subOrgArray[$subOrgArrayCounter]="}";
$subOrgArrayCounter++;

# -ContactPoint---------------------------------------------------------------------------
}elsif($line =~/<\/contactPoint>/){
print OUTJSON "},";
}elsif($line =~/<contactPoint>/){
print OUTJSON "\"contactPoint\": {"

#spatial-----------------------------------------------------------------------------------
}elsif($line =~/<\/spatial>/){
print OUTJSON "}\",";
}elsif($line =~/<spatial>/){
print OUTJSON "\"spatial\": \"{";
$spatial="yes";
#polygon--------------------------------------------------------------------------------
}elsif($line =~/<Polygon>/){
print OUTJSON " \\\"Polygon\\\",";
}elsif($line =~/<coordinates>/){
print OUTJSON " \\\"coordinates\\\": [[";

#pairs------------------------------------------------------------------------------
}elsif($line =~/<pair1>/){
#skip
}elsif($line =~/<\/pair1>/){
print OUTJSON "[$westBC,$northBC],";
}elsif($line =~/<pair2>/){
#skip
}elsif($line =~/<\/pair2>/){
print OUTJSON "[$eastBC,$southBC],";
}elsif($line =~/<pair3>/){
#skip
}elsif($line =~/<\/pair3>/){
print OUTJSON "[$eastBC,$northBC],";
}elsif($line =~/<pair4>/){
#skip
}elsif($line =~/<\/pair4>/){
print OUTJSON "[$westBC,$southBC],";
}elsif($line =~/ <pair5>/){
#skip
}elsif($line =~/ <\/pair5>/){
print OUTJSON "[$westBC,$northBC]";

#coordinates---------------------------------------------------------------
}elsif($line =~/<west>/){
$leftBracket=index($line,"<");
$righbracLoc=index($line,">");
$slashLoc=index($line, "/");
$length=$slashLoc-$righbracLoc-2;
$westBC=substr($line,$righbracLoc+1,$length);
}elsif($line =~/<north>/){
$leftBracket=index($line,"<");
$righbracLoc=index($line,">");
$slashLoc=index($line, "/");
$length=$slashLoc-$righbracLoc-2;
$northBC=substr($line,$righbracLoc+1,$length);
}elsif($line =~/<east>/){
$leftBracket=index($line,"<");
$righbracLoc=index($line,">");
$slashLoc=index($line, "/");
$length=$slashLoc-$righbracLoc-2;
$eastBC=substr($line,$righbracLoc+1,$length);
}elsif($line =~/<south>/){
$leftBracket=index($line,"<");
$righbracLoc=index($line,">");
$slashLoc=index($line, "/");
$length=$slashLoc-$righbracLoc-2;
$southBC=substr($line,$righbracLoc+1,$length);
#temporal---------------------------------------------------------------------
}elsif($line =~/<begin>/){
$leftBracket=index($line,"<");
$righbracLoc=index($line,">");
$slashLoc=index($line, "/");
$length=$slashLoc-$righbracLoc-2;
$begin=substr($line,$righbracLoc+1,$length);
}elsif($line =~/<end>/){
$leftBracket=index($line,"<");
$righbracLoc=index($line,">");
$slashLoc=index($line, "/");
$length=$slashLoc-$righbracLoc-2;
$end=substr($line,$righbracLoc+1,$length);
}elsif($line =~/<\/temporal>/){
print OUTJSON "\"$begin/$end\",";

}elsif($line =~/<temporal>/){
$leftBracket=index($line,"<");
$righbracLoc=index($line,">");
$slashLoc=index($line, "/");
$length=$slashLoc-$righbracLoc-2;
$elText=substr($line,$righbracLoc+1,$length);

$elLength=$righbracLoc-$leftBracket-1;
$elementMain=substr($line,$leftBracket+1, $elLength);

#elLength=$righbracLoc-$leftBracket;
$newElement= "\"" . $elementMain .  "\":";
#print OUTJSON "$newElement \"$elText\",";
print OUTJSON "$newElement";
print "temporal!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n";

}elsif($line =~/<\/distribution>/){
print OUTJSON "}]'";
$dist="yes";
}elsif($line =~/<distribution>/){
print OUTJSON "\"distribution\":[{";
$dist="no";

}else{

$leftBracket=index($line,"<");
$righbracLoc=index($line,">");
$slashLoc=index($line, "/");
$length=$slashLoc-$righbracLoc-2;
$elText=substr($line,$righbracLoc+1,$length);

$elLength=$righbracLoc-$leftBracket-1;
$elementMain=substr($line,$leftBracket+1, $elLength);

#elLength=$righbracLoc-$leftBracket;
$newElement= "\"" . $elementMain .  "\":";
print OUTJSON "$newElement \"$elText\",";




print "In the default!!!!!!!!!!!!!!!!!!\n";
};


};


