Example #1
0
        private static XElement WriteElement(PlistElement el)
        {
            if (el is PlistElementBoolean)
            {
                return(new XElement((XName)(!(el as PlistElementBoolean).value ? "false" : "true")));
            }
            if (el is PlistElementInteger)
            {
                return(new XElement((XName)"integer", (object)(el as PlistElementInteger).value.ToString()));
            }
            if (el is PlistElementString)
            {
                return(new XElement((XName)"string", (object)(el as PlistElementString).value));
            }
            if (el is PlistElementReal)
            {
                return(new XElement((XName)"real", (object)(el as PlistElementReal).value.ToString()));
            }
            if (el is PlistElementDate)
            {
                return(new XElement((XName)"date", (object)(el as PlistElementDate).value.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")));
            }
            if (el is PlistElementDict)
            {
                PlistElementDict plistElementDict = el as PlistElementDict;
                XElement         xelement1        = new XElement((XName)"dict");
                foreach (KeyValuePair <string, PlistElement> keyValuePair in (IEnumerable <KeyValuePair <string, PlistElement> >)plistElementDict.values)
                {
                    XElement xelement2 = new XElement((XName)"key", (object)keyValuePair.Key);
                    XElement xelement3 = PlistDocument.WriteElement(keyValuePair.Value);
                    if (xelement3 != null)
                    {
                        xelement1.Add((object)xelement2);
                        xelement1.Add((object)xelement3);
                    }
                }
                return(xelement1);
            }
            if (!(el is PlistElementArray))
            {
                return((XElement)null);
            }
            PlistElementArray plistElementArray = el as PlistElementArray;
            XElement          xelement4         = new XElement((XName)"array");

            foreach (PlistElement el1 in plistElementArray.values)
            {
                XElement xelement1 = PlistDocument.WriteElement(el1);
                if (xelement1 != null)
                {
                    xelement4.Add((object)xelement1);
                }
            }
            return(xelement4);
        }
Example #2
0
        public string WriteToString()
        {
            XElement xelement1 = PlistDocument.WriteElement((PlistElement)this.root);
            XElement xelement2 = new XElement((XName)"plist");

            xelement2.Add((object)new XAttribute((XName)"version", (object)this.version));
            xelement2.Add((object)xelement1);
            XDocument doc = new XDocument();

            doc.Add((object)xelement2);
            return(PlistDocument.CleanDtdToString(doc, this.documentType).Replace("\r\n", "\n"));
        }