I have a Datatable Cities containing the following data (only 3 out of 60000 items I am posting).
I want to create an xml(KML) from the data provided.
How to create generic solution?
Perhaps creating classes and adding properties and then loading in to xml.
This would be the XML generated.i am posting only a portion
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2"
xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:json="http://www.w3.org/2005/Json">
<Folder>
<name>USA</name>
<open>1</open>
<Folder>
<name>Corperation</name>
<open>1</open>
<Folder>
<name>LARGE</name>
<Folder>
<name>WORKING</name>
<Document>
<name>POINTS</name>
<StyleMap id="Licerio0_0">
<Pair>
<key>normal</key>
<styleUrl>#Licerio0_0N</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#Licerio0_0H</styleUrl>
</Pair>
</StyleMap>
<Style id="Licerio0_0N">
<IconStyle>
<color>ff00ff00</color>
<scale>0.4</scale>
<Icon>
http://maps.google.com/mapfiles/kml/shapes/shaded_dot.png
</Icon>
</IconStyle>
<LabelStyle>
<color>ff00ff00</color>
<scale>0.6</scale>
</LabelStyle>
<BalloonStyle>
<text>$[description]</text>
</BalloonStyle>
<LineStyle>
<antialias>0</antialias>
</LineStyle>
<PolyStyle>
<fill>0</fill>
<outline>0</outline>
</PolyStyle>
</Style>
<Placemark>
<name>NEWYORK</name>
<description>
<![CDATA[<img src="http://upload.wikimedia.org/wikipedia/commons/USA.png"width="47" height="67">
<br>RSID = <b>NEWYORK</b><ul>
<li>PIN = 676306
<li>LONGITUDE = 54.4251
<li>LATITUDE = 25.6011
<li>SCALE = 0.7
<li>TOTAL TILT = 4
<li>CH = 87
<li>REGION = NEM</ul></li>]]>
</description>
<styleUrl>#Licerio0_0</styleUrl>
<Point>
<gx:drawOrder>3</gx:drawOrder>
<coordinates>54.4251,25.6011,0</coordinates>
</Point>
</Placemark>
</Document>
*
*<Document>
<name>LINES</name>
<Style id="Zamoras0_0">
</Style>
<Placemark>
<name>***Site Id***</name>
<styleUrl>#Zamoras0_0</styleUrl>
<MultiGeometry>
<LineString>
<gx:drawOrder>3</gx:drawOrder>
<coordinates>***LONGITUDE***,***LATITUDE***,***SCALE***</coordinates>
</LineString>
</MultiGeometry>
</Placemark>
</Document>**
</Folder>
</Folder>
</Folder>
.
.
ETC.......
</Folder>
</kml>
EDIT
Small change in template,two documents are there one for LINES
and another for POINTS
.If i have internal streets ,then it should be added inside placemarks of both document section.i am editing my question.How to do that?if i use this code it is duplicating
dt.Columns.Add("countryname", typeof(string));
dt.Columns.Add("citytype", typeof(string));
dt.Columns.Add("size", typeof(string));
dt.Columns.Add("status", typeof(string));
dt.Columns.Add("cityname", typeof(string));
dt.Columns.Add("pin", typeof(int));
dt.Columns.Add("LONGITUDE", typeof(double));
dt.Columns.Add("LATITUDE", typeof(double));
dt.Columns.Add("SCALE", typeof(double));
dt.Columns.Add("TOTAL", typeof(int));
dt.Columns.Add("TILT", typeof(string));
dt.Columns.Add("CH", typeof(string));
dt.Columns.Add("REGION", typeof(string));
dt.Columns.Add("streets", typeof(string));
dt.Rows.Add(new object[] { "USA", "Corperation", "LARGE", "WORKING", "newyork", 676306, 24.4251, 25.6011, 0.0, 87, "NEM","firststreet" });
dt.Rows.Add(new object[] { "USA", "Corperation", "LARGE", "WORKING", "newyork", 676306, 24.4251, 25.6011, 0.0, 87, "NEM","downtownstreet" });
dt.Rows.Add(new object[] { "USA", "Corperation", "LARGE", "WORKING", "chicago", 676306, 24.4251, 25.6011, 0.0, 87, "NEM","chicstreet" });
dt.Rows.Add(new object[] { "USA", "Corperation", "LARGE", "WORKING", "la", 676306, 24.4251, 25.6011, 0.0, 87, "NEM","lastreet" });
dt.Rows.Add(new object[] { "USA", "Corperation", "MEDIUM", "WORKING", "buffalo", 676306, 24.4251, 25.6011, 0.0, 87, "NEM","buffalostreet" });
dt.Rows.Add(new object[] { "USA", "Corperation", "MEDIUM", "WORKING", "buffalo", 676306, 24.4251, 25.6011, 0.0, 87, "NEM","cowstreet" });
dt.Rows.Add(new object[] { "USA", "Corperation", "MEDIUM", "WORKING", "denver", 676306, 24.4251, 25.6011, 0.0, 87, "NEM","street" });
dt.Rows.Add(new object[] { "USA", "Corperation", "MEDIUM", "NOT WORKING", "lasvegas", 676306, 24.4251, 25.6011, 0.0, 87, "NEM","street" });
dt.Rows.Add(new object[] { "USA", "Corperation", "SMALL", "WORKING", "trenton", 676306, 24.4251, 25.6011, 0.0, 87, "NEM" ,"street"});
dt.Rows.Add(new object[] { "USA", "Village", "SMALL", "WORKING", "albany", 676306, 24.4251, 25.6011, 0.0, 87, "NEM","street" });
dt.Rows.Add(new object[] { "USA", "Village", "SMALL", "WORKING", "hartford", 676306, 24.4251, 25.6011, 0.0, 87, "NEM","street" });
dt.Rows.Add(new object[] { "SPAIN", "Corperation", "MEDIUM", "WORKING", "BARCELONA", 11111, 34.4251, 25.6011, 0.0, 82, "LEV" });
dt.Rows.Add(new object[] { "ITALY", "Corperation", "LARGE", "WORKING", "ITALY", 21111, 14.4251, 15.6011, 0.0, 80, "MIR" });