I recently created a small C# windows forms/LINQ to XML app in VS2010 that does exactly what it\'s supposed to do, except for one thing: it adds \"[]\" to the end of the DOC
If you are dealing with this on Mono (like cod3monk3y) for cases like modifying Info.plist, you can use the old XmlDocument class to fix things up after you use XDocument to create/modify your xml file.
The code assumes your "Info.plist" file is located at the path infoPlist:
using System;
using System.IO;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
var xDocument = XDocument.Load (infoPlist);
// Do your manipulations here
xDocument.Save (infoPlist);
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load (infoPlist);
if (xmlDocument.DocumentType != null)
{
var name = xmlDocument.DocumentType.Name;
var publicId = xmlDocument.DocumentType.PublicId;
var systemId = xmlDocument.DocumentType.SystemId;
var parent = xmlDocument.DocumentType.ParentNode;
var documentTypeWithNullInternalSubset = xmlDocument.CreateDocumentType(name, publicId, systemId, null);
parent.ReplaceChild(documentTypeWithNullInternalSubset, xmlDocument.DocumentType);
}
xmlDocument.Save (infoPlist);