2009-04-20 6 views
14

Sto modificando i file csproj con Linq-to-XML e ho bisogno di salvare l'XML senza l'intestazione <?XML?>.XDocument.Save() senza intestazione

Come XDocument.Save() manca l'opzione necessaria, qual è il modo migliore per farlo?

risposta

22

Si può fare questo con XmlWriterSettings, e salvare il documento a un XmlWriter:

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

Mi dovrebbe Googled questo prima. Ricordo di aver cercato di fare qualcosa di simile e di aver inserito alcune stringhe terribili per rimetterlo in funzione. Nice Find :) –

+0

@Johannes - sì! oops ... risolto, grazie. –

+0

Funziona perfettamente, grazie! – laktak