Esempio n. 1
0
        private PlistDictionary LoadDictionaryContents(XmlReader reader, PlistDictionary dict)
        {
            Debug.Assert(reader.NodeType == XmlNodeType.Element && reader.LocalName == "key");
            while (!reader.EOF && reader.NodeType == XmlNodeType.Element)
            {
                //string key = reader.ReadElementString ();
                string key = reader.ReadElementContentAsString();
                while (reader.NodeType != XmlNodeType.Element && reader.Read())
                {
                    if (reader.NodeType == XmlNodeType.EndElement)
                    {
                        throw new Exception(String.Format("No value found for key {0}", key));
                    }
                }
                PlistObjectBase result = LoadFromNode(reader);
                if (result != null)
                {
                    dict.Add(key, result);
                }

                // when there is no whitespace between nodes, we might already be at
                // the next key element, so reading to next sibling would jump over
                // the next (current) key element
                if (!"key".Equals(reader.Name))
                {
                    reader.ReadToNextSibling("key");
                }
            }
            return(dict);
        }
Esempio n. 2
0
 public void LoadFromXml(XmlReader reader)
 {
     reader.ReadToDescendant("plist");
     while (reader.Read() && reader.NodeType != XmlNodeType.Element)
     {
         ;
     }
     if (!reader.EOF)
     {
         root = LoadFromNode(reader);
     }
 }
Esempio n. 3
0
 public PlistDocument(PlistObjectBase root)
 {
     this.root = root;
 }