static void Main(string[] args) { int count; string trainKey; string station; string stationName; string route; string destination; string direction; string estArrivalTime; string runNumber; int isDelayed; int isArriving; List<Train> trains = new List<Train>(); //Add your CTA API key here trainKey = null; //Add station here, CTA dev documentation has full list station = "30109"; string type; if (station.Substring(0, 1) == "4") type = "mapid"; else type = "stpid"; //Imports XML data. XmlDocument APIDoc = null; XmlTextReader reader = new XmlTextReader("http://lapi.transitchicago.com/api/1.0/ttarrivals.aspx?key=" + trainKey + "&" + type + "=" + station); APIDoc = new XmlDocument(); APIDoc.Load(reader); count = APIDoc.ChildNodes[1].SelectNodes("eta").Count; reader.Close(); //Extracts data from XML and stroes in a Train object for (int i = 3; i < count + 2; i++) { stationName = APIDoc.ChildNodes[1].ChildNodes[i].ChildNodes[2].ChildNodes[0].Value; route = APIDoc.ChildNodes[1].ChildNodes[i].ChildNodes[5].ChildNodes[0].Value; destination = APIDoc.ChildNodes[1].ChildNodes[i].ChildNodes[3].ChildNodes[0].Value; direction = APIDoc.ChildNodes[1].ChildNodes[i].ChildNodes[8].ChildNodes[0].Value; estArrivalTime = APIDoc.ChildNodes[1].ChildNodes[i].ChildNodes[10].ChildNodes[0].Value; runNumber = APIDoc.ChildNodes[1].ChildNodes[i].ChildNodes[4].ChildNodes[0].Value; isDelayed = Convert.ToInt32(APIDoc.ChildNodes[1].ChildNodes[i].ChildNodes[13].ChildNodes[0].Value); isArriving = Convert.ToInt32(APIDoc.ChildNodes[1].ChildNodes[i].ChildNodes[11].ChildNodes[0].Value); Train train = new Train(stationName, route, destination, direction, runNumber); train.Route = train.RouteNameConversion(route); train.IsDelayed = train.IsTrainDelayed(isDelayed); train.IsArriving = train.IsTrainArriving(isArriving); train.ArrivalInMinutes = train.CalculateMinutesToArrival(estArrivalTime); train.PrintString = train.PrintData(); trains.Add(train); } WriteListToConsole(trains); //WriteNextTrainToConsole(trains); Console.ReadLine(); }