Как мне записать строку XML в файл? - PullRequest
23 голосов
/ 26 февраля 2009

У меня есть строка и ее значение:

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

Как мне записать эту строку в файл, используя C # 3.0?

Заранее спасибо.

Ответы [ 4 ]

50 голосов
/ 26 февраля 2009

Попробуйте это:

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

Имеет дополнительное преимущество, что загрузка не удастся, если ваш XML является недействительным.

18 голосов
/ 26 февраля 2009
File.WriteAllText("myFile.xml",myString);
0 голосов
/ 26 февраля 2009

Я знаю, что вы сказали C #, но вы пробовали VB.NET для XML литералов. Удивительные вещи.

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

Обратите внимание на аккуратный элемент, который вставляет результат кода в вывод:

<?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 [удалено мнений]

0 голосов
/ 26 февраля 2009

Вам придется использовать раздел CDATA . В частности, создайте XmlCDataSection, используя XmlDocument.CreateCDataSection, и укажите свою строку в качестве параметра.

...