30 Stimmen

Wie speichert man diese Zeichenfolge in einer XML-Datei?

Ich habe diese String-Variable:

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>";

Wie kann ich diese Zeichenfolge in einer XML-Datei auf meinem Laufwerk c speichern? Mit c#.

2voto

James Walford Punkte 2942

Wenn Sie die Zeichenkette so speichern wollen, wie sie ist, ohne zu prüfen, ob sie wohlgeformt oder gültig ist, dann verwenden Sie, wie oben beantwortet wurde, System.IO.File.WriteAllText("C:\myfilename.xml", xml );

Wie bereits erwähnt, wird die Datei standardmäßig als UTF-8 gespeichert, aber Sie können die Kodierung angeben, wie Jon Skeet erwähnte.

Ich würde empfehlen, dem String eine XML-Deklaration hinzuzufügen, z.B.,

<?xml version="1.0" encoding="UTF-8"?>

und sicherstellen, dass die Kodierung in der Deklaration mit der in der WriteAllText-Methode übereinstimmt. Wenn man sich die Häufigkeit der Fragen zur XML-Kodierung auf Stackoverflow ansieht, kann man sich damit später eine Menge Ärger ersparen.

Wenn Sie sicherstellen wollen, dass die XML-Datei wohlgeformt und/oder gültig ist, müssen Sie zunächst einen XML-Parser verwenden, wie z. B. XDocument doc = XDocument.Parse(str); Diese Methode wird auch außer Kraft gesetzt, wenn Sie Leerzeichen beibehalten wollen: XDocument.Parse(str, LoadOptions.PreserveWhitespace)

Sie können dann eine Validierung durchführen http://msdn.microsoft.com/en-us/library/bb340331.aspx

vor dem Speichern in eine Datei: doc.Save("C:\myfilename.xml");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X