Cum scriu un șir XML într-un fișier? (Programare, C#, Xml,.Net 3.0)

pragadheesh a intrebat.

Am un șir de caractere și valoarea sa este:

<ROOT>
    qwerty
    <SampleElement>adsf</SampleElement> 
    <SampleElement2>The text of the sample element2</SampleElement2> 
</ROOT>

Cum pot să scriu acest șir într-un fișier folosind C# 3.0?

Vă mulțumesc anticipat.

Comentarii

  • Titlul este foarte înșelător. Ar trebui să spună într-adevăr ceva despre I/O de fișiere în C# -.  > Por Akrikos.
  • Andrew de ce se face rollback? –  > Por Gavin Miller.
  • Cred că ar trebui să încercăm să respectăm cât mai mult posibil postarea originală, inclusiv chestiile de tipul „Bună tuturor”, deoarece asta a scris OP. Nimic personal 🙂 –  > Por Andrew Hare.
  • Destul de corect – Când faceți rollback, ați putea să adăugați ceva rațional pentru a preveni războaiele de rollback pe care le-am văzut în ultimele două zile! 😀 –  > Por Gavin Miller.
  • Ah, da! Acesta este un sfat excelent – voi face asta pe viitor – mulțumesc! –  > Por Andrew Hare.
4 răspunsuri
jvenema

Încercați acest lucru:

string s = "<xml><foo></foo></xml>";
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(s);
xdoc.Save("myfilename.xml");

Are avantajul suplimentar că încărcarea va eșua dacă XML-ul dvs. este invalid.

BFree
File.WriteAllText("myFile.xml",myString);

Comentarii

  • +1 Pentru economisirea costurilor de conversie a fișierului într-un XDocument doar pentru a obține un apel IO convenabil. Pentru serializare sau Xml fără spațiere între nume, această abordare este mai eficientă. –  > Por Jason.
Anton Gogolev

Va trebui să utilizați secțiunea CDATA. Mai precis, creați o secțiune XmlCDataSection folosind XmlDocument.CreateCDataSection și furnizați șirul dvs. de caractere ca parametru.

Mike Bonnell

Știu că ați spus C#, dar ați încercat VB.NET pentru XML Literals. Lucruri uimitoare.

Public Class Program
    Public Shared Sub Main()
        Dim myKeyBoardStyle = "dvorak"

        Dim myXML As XElement = <ROOT>
                                qwerty
                                <altKeyboard><%= myKeyBoardStyle.ToUpper() %></altKeyboard>
                                    <SampleElement>adsf</SampleElement>
                                    <SampleElement2>The text of the sample element2</SampleElement2>
                                </ROOT>

        Console.WriteLine(myXML.ToString())

        myXML.Save(".fileFromXElement.xml")
    End Sub
End Class

Observați elementul îngrijit care injectează rezultatul codului în în ieșire:

<?xml version="1.0" encoding="utf-8"?>
<ROOT>
                                qwerty
                                <altKeyboard>DVORAK</altKeyboard><SampleElement>adsf</SampleElement><SampleElement2>The text of the sample element2</SampleElement2></ROOT>

snip [opinii eliminate]

Comentarii

  • Acesta nu este un caz de instrument potrivit pentru locul de muncă. Postarea dvs. este un exemplu al limitărilor pe care le are cunoașterea unui singur instrument și încercarea de a forța totul în el. Dacă OP folosește C# pentru orice altceva, introducerea VB.NET doar pentru a salva un șir XML este ridicolă. –  > Por Ken White.
  • Nu Postarea mea în un exemplu a ceea ce poate face o minte deschisă prin utilizarea proiectelor din mai multe limbaje în aceeași soluție. Sintaxa limbajului VB este foarte ușor de utilizat pentru XML. Eu folosesc atât VB, cât și C#. Nu este clar cât de mult „tot restul” este făcut în C# de către pragadheesh. Poate că el explorează alternative. –  > Por Mike Bonnell.
  • Continui să spun că introducerea unui alt limbaj pentru simplul scop de a salva un șir XML este ridicol. De fapt, deschideți-vă mintea și gândiți-vă la ceea ce propuneți: „Doamne, voi aduce un buldozer, deși tot ce am nevoie este o mistrie, pentru a muta această cană plină de nisip în grădină.” –  > Por Ken White.

Tags:, ,