Esempio n. 1
0
        public JToken LoadXml(XElement xmlDoc)
        {
            var topNode = xmlDoc.Element("dict").Element("array");

            this.Items = new List <IPlistXmlItem>();

            IPlistXmlItem tempItem = null;

            foreach (var node in topNode.Elements())
            {
                tempItem = LoadXmlNode(node);
                if (null != tempItem)
                {
                    tempItem.Uid = this.Items.Count;
                    this.Items.Add(tempItem);
                }
                else
                {
                    tempItem     = new PListXmlItemString();
                    tempItem.Uid = this.Items.Count;
                    this.Items.Add(tempItem);
                }
            }

            PListXmlItemDict root = this.Items[1] as PListXmlItemDict;

            return(GetJObject(root));
        }
Esempio n. 2
0
        public static IPlistXmlItem LoadXmlNode(XElement node)
        {
            IPlistXmlItem tempItem = null;

            switch (node.Name.LocalName)
            {
            case "string":
            case "ustring":
                tempItem = new PListXmlItemString();
                break;

            case "dict":
                tempItem = new PListXmlItemDict();
                break;

            case "integer":
                tempItem = new PListXmlItemInteger();
                break;

            case "array":
                tempItem = new PListXmlItemArray();
                break;

            case "uid":
                tempItem = new PListXmlItemUid();
                break;

            case "false":
                tempItem = new PListXmlItemFalse();
                break;

            case "true":
                tempItem = new PListXmlItemTrue();
                break;

            default:
                tempItem = null;
                break;
            }
            if (null != tempItem)
            {
                tempItem.Load(node);
            }

            return(tempItem);
        }