Exemplo n.º 1
0
        private static object parse(XmlNode node)
        {
            string name = node.Name;

            if (name == "dict")
            {
                return(Plist.parseDictionary(node));
            }
            if (name == "array")
            {
                return(Plist.parseArray(node));
            }
            if (name == "string")
            {
                return(node.InnerText);
            }
            if (name == "integer")
            {
                return(Convert.ToInt32(node.InnerText, NumberFormatInfo.InvariantInfo));
            }
            if (name == "real")
            {
                return(Convert.ToDouble(node.InnerText, NumberFormatInfo.InvariantInfo));
            }
            if (name == "false")
            {
                return(false);
            }
            if (name == "true")
            {
                return(true);
            }
            if (name == "null")
            {
                return(null);
            }
            if (name == "date")
            {
                return(XmlConvert.ToDateTime(node.InnerText, XmlDateTimeSerializationMode.Utc));
            }
            if (name != "data")
            {
                throw new ApplicationException(string.Format("Plist Node `{0}' is not supported", node.Name));
            }
            return(Convert.FromBase64String(node.InnerText));
        }