如何将此字符串保存到XML文件中?

我有这个字符串变量:

string xml = @"  Patrick Hines 206-555-0144 425-555-0145 332-899-5678 
123 Main St Mercer Island WA 68042
Dorothy Lee 910-555-1212 336-555-0123 336-555-0005
16 Friar Duck Ln Greensboro NC 27410
";

如何将此字符串保存到驱动器c中的XML文件中? 使用c#。

事实上,它的XML基本上是无关紧要的。 使用File.WriteAllText可以非常简单地将任何文本保存到文件中:

 File.WriteAllText("foo.xml", xml); 

请注意,您还可以指定编码,默认为UTF-8。 例如,如果要以纯ASCII编写文件:

 File.WriteAllText("foo.xml", xml, Encoding.ASCII); 
 XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml(yourXMLString); xdoc.Save("myfilename.xml"); 

如果您不需要对字符串进行任何处理(例如,使用XML库),您可以这样做:

 File.WriteAllText(@"c:\myXml.xml", xml); 
 System.IO.File.WriteAllText("filename.xml", xml ); 

你可以这样做:

 string path = @"C:\testfolder\testfile.txt"; using (System.IO.StreamWriter file = new System.IO.StreamWriter(path)) { file.Write(text); } 

您也可以在创建XML文档后执行此操作,但速度较慢:

 xdoc.Save 

如果你想按原样保存字符串而不检查它是否格式正确或有效,那么如上所述,使用System.IO.File.WriteAllText("C:\myfilename.xml", xml );

如前所述,这默认为将文件保存为UTF-8,但您可以指定编码为Jon Skeet。

我建议在字符串中添加XML声明,例如,

  

并确保声明中的编码与WriteAllText方法中的编码匹配。 从堆栈溢出的XML编码问题的频率来看,它可能会在以后节省相当多的麻烦。

如果要确保XML格式正确和/或有效,那么首先需要在其上使用XML解析器,例如XDocument doc = XDocument.Parse(str); 如果要保留空格,也会覆盖该方法: XDocument.Parse(str, LoadOptions.PreserveWhitespace)

然后,您可以对其进行validationhttp://msdn.microsoft.com/en-us/library/bb340331.aspx

保存到文件之前: doc.Save("C:\myfilename.xml");