Exemplo n.º 1
0
 private static XElement WriteElement(PlistElement el)
 {
     if (el is PlistElementBoolean)
     {
         var realEl = el as PlistElementBoolean;
         return(new XElement(realEl.value ? "true" : "false"));
     }
     if (el is PlistElementInteger)
     {
         var realEl = el as PlistElementInteger;
         return(new XElement("integer", realEl.value.ToString()));
     }
     if (el is PlistElementFloat)
     {
         var realEl = el as PlistElementFloat;
         return(new XElement("real", realEl.value.ToString()));
     }
     if (el is PlistElementString)
     {
         var realEl = el as PlistElementString;
         return(new XElement("string", realEl.value));
     }
     if (el is PlistElementDateString)
     {
         var realEl = el as PlistElementDateString;
         return(new XElement("date", realEl.value));
     }
     if (el is PlistElementDict)
     {
         var realEl  = el as PlistElementDict;
         var dictXml = new XElement("dict");
         foreach (var kv in realEl.values)
         {
             var keyXml   = new XElement("key", kv.Key);
             var valueXml = WriteElement(kv.Value);
             if (valueXml != null)
             {
                 dictXml.Add(keyXml);
                 dictXml.Add(valueXml);
             }
         }
         return(dictXml);
     }
     if (el is PlistElementArray)
     {
         var realEl   = el as PlistElementArray;
         var arrayXml = new XElement("array");
         foreach (var v in realEl.values)
         {
             var elXml = WriteElement(v);
             if (elXml != null)
             {
                 arrayXml.Add(elXml);
             }
         }
         return(arrayXml);
     }
     return(null);
 }
Exemplo n.º 2
0
        public void ReadFromString(string text)
        {
            XDocument doc = ParseXmlNoDtd(text);

            version = (string)doc.Root.Attribute("version");
            XElement xml = doc.XPathSelectElement("plist/dict");

            var dict = ReadElement(xml);

            if (dict == null)
            {
                throw new Exception("Error parsing plist file");
            }
            root = dict as PlistElementDict;
            if (root == null)
            {
                throw new Exception("Malformed plist file");
            }
        }
Exemplo n.º 3
0
 public PlistDocument()
 {
     root    = new PlistElementDict();
     version = "1.0";
 }