2009-04-20 14 views
14

Linq-to-XML ile csproj dosyalarını düzenliyorum ve XML'yi <?XML?> başlığı olmadan kaydetmem gerekiyor.XDocument.Save() başlıksız

XDocument.Save() gerekli seçenek eksik olduğundan, bunu yapmanın en iyi yolu nedir?

cevap

22

Sen XmlWriterSettings ile bunu ve bir XmlWriter belgeyi kaydetme yapabilirsiniz: Gerçekten önce bu googled gerekirdi

XDocument doc = new XDocument(new XElement("foo", 
    new XAttribute("hello","world"))); 

XmlWriterSettings settings = new XmlWriterSettings(); 
settings.OmitXmlDeclaration = true; 
StringWriter sw = new StringWriter(); 
using (XmlWriter xw = XmlWriter.Create(sw, settings)) 
// or to write to a file... 
//using (XmlWriter xw = XmlWriter.Create(filePath, settings)) 
{ 
    doc.Save(xw); 
} 
string s = sw.ToString(); 
+0

. Benzer yapmak ve işe yaraması için hack'in yerine bazı korkunç dize koymayı hatırlıyorum. Güzel Bul :) –

+0

@Johannes - yup! Oops ... sabit, teşekkürler. –

+0

Mükemmel çalışıyor, teşekkürler! – laktak