/// <summary>
        /// Gets all data for a specific platform.
        /// </summary>
        /// <param name="ID">The platform ID to return data for (can be found by using GetPlatformsList)</param>
        /// <returns>A Platform-object containing all the data about the platform, or null if no platform was found</returns>
        public static GDBNETPlatform GetPlatform(int ID)
        {
            XmlDocument doc = new XmlDocument();

            doc.Load(@"http://thegamesdb.net/api/GetPlatform.php?id=" + ID);

            XmlNode     root  = doc.DocumentElement;
            IEnumerator ienum = root.GetEnumerator();

            XmlNode        platformNode = root.FirstChild.NextSibling;
            GDBNETPlatform platform     = new GDBNETPlatform();

            IEnumerator ienumPlatform = platformNode.GetEnumerator();
            XmlNode     attributeNode;

            while (ienumPlatform.MoveNext())
            {
                attributeNode = (XmlNode)ienumPlatform.Current;

                // Iterate through all platform attributes
                switch (attributeNode.Name)
                {
                case "id":
                    int.TryParse(attributeNode.InnerText, out platform.ID);
                    break;

                case "Platform":
                    platform.Name = attributeNode.InnerText;
                    break;

                case "overview":
                    platform.Overview = attributeNode.InnerText;
                    break;

                case "developer":
                    platform.Developer = attributeNode.InnerText;
                    break;

                case "manufacturer":
                    platform.Manufacturer = attributeNode.InnerText;
                    break;

                case "cpu":
                    platform.CPU = attributeNode.InnerText;
                    break;

                case "memory":
                    platform.Memory = attributeNode.InnerText;
                    break;

                case "graphics":
                    platform.Graphics = attributeNode.InnerText;
                    break;

                case "sound":
                    platform.Sound = attributeNode.InnerText;
                    break;

                case "display":
                    platform.Display = attributeNode.InnerText;
                    break;

                case "media":
                    platform.Media = attributeNode.InnerText;
                    break;

                case "maxcontrollers":
                    int.TryParse(attributeNode.InnerText, out platform.MaxControllers);
                    break;

                case "Rating":
                    float.TryParse(attributeNode.InnerText, out platform.Rating);
                    break;

                case "Images":
                    platform.Images.FromXmlNode(attributeNode);
                    break;
                }
            }

            return(platform);
        }