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

yon*_*236 23 c# xml

我有这个字符串变量:

string xml = @"<Contacts> 
    <Contact> 
    <Name>Patrick Hines</Name> 
    <Phone Type=""Home"">206-555-0144</Phone> 
    <Phone Type=""Work"">425-555-0145</Phone> 
    <Phone Type=""Mobile"">332-899-5678</Phone> 
    <Address> 
        <Street1>123 Main St</Street1> 
        <City>Mercer Island</City> 
        <State>WA</State> 
        <Postal>68042</Postal> 
    </Address> 
    </Contact> 
    <Contact> 
    <Name>Dorothy Lee</Name> 
    <Phone Type=""Home"">910-555-1212</Phone> 
    <Phone Type=""Work"">336-555-0123</Phone> 
    <Phone Type=""Mobile"">336-555-0005</Phone> 
    <Address> 
        <Street1>16 Friar Duck Ln</Street1> 
        <City>Greensboro</City> 
        <State>NC</State> 
        <Postal>27410</Postal> 
    </Address> 
    </Contact>
</Contacts>";
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*eet 63

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

File.WriteAllText("foo.xml", xml);
Run Code Online (Sandbox Code Playgroud)

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

File.WriteAllText("foo.xml", xml, Encoding.ASCII);
Run Code Online (Sandbox Code Playgroud)

  • @ yonan2236:然后只使用`File.ReadAllText`.正如Jon Skeet所说,你似乎并没有做任何特定于XML的事情.你只想对文本数据做基本文件I/O? (2认同)
  • @ yonan2236:问题不在于*错**它更多的是它混合了两个概念:保存文本文件,文本文件的内容是XML. (2认同)

Bvd*_*Ven 10

XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(yourXMLString);
xdoc.Save("myfilename.xml");
Run Code Online (Sandbox Code Playgroud)


Ani*_*Ani 7

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

File.WriteAllText(@"c:\myXml.xml", xml);
Run Code Online (Sandbox Code Playgroud)

  • +1对于使用正确的路径,应该为OP保存一些头部划痕.:) (2认同)

Ita*_*aro 6

System.IO.File.WriteAllText("filename.xml", xml );
Run Code Online (Sandbox Code Playgroud)