我正在使用Linq-to-XML编辑csproj文件,需要在没有<?XML?>
标题的情况下保存XML。
由于XDocument.Save()缺少必要的选项,最好的方法是什么?
答案 0 :(得分:24)
您可以使用XmlWriterSettings
执行此操作,并将文档保存到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();
答案 1 :(得分:1)
比接受的答案更简单的解决方案是使用 XDocument.ToString() 获取没有标题的 XML 文本。
示例:
// Load the file
XDocument xDocument = XDocument.Load(fileName);
// Edit the XML...
// Save the edited XML text to file
File.WriteAllText(fileName, xDocument.ToString());