2009-02-26 4 views
19

У меня есть строка и его значение:Как написать строку XML в файл?

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

Как я могу написать эту строку в файл с помощью C# 3.0?

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

+1

Указанное в заголовке очень вводит в заблуждение. Это должно действительно что-то сказать о файловом вводе/выводе в C# – Akrikos

+0

Эндрю почему откат? –

+0

Я думаю, что мы должны стараться уважать исходное сообщение как можно больше, включая материал «Привет всем», как это писал OP. Ничего личного :) –

ответ

0

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

45

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

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

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

+2

+1 Также освобождает вас от беспокойства по поводу кодирования и т. Д. – bernhof

17
File.WriteAllText("myFile.xml",myString); 
+0

+1 Для экономии накладных расходов при преобразовании файла в XDocument просто для получения удобного вызова ввода-вывода. Для сериализации или XML, не принадлежащих именам, этот подход более эффективен. – Jason

-3

Я знаю, что вы сказали 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> 

надрез [удалены мнения]

+5

Это не пример правильного инструмента для работы. Ваше сообщение является примером ограничений только знания одного инструмента и попытки вложить в него все. Если OP использует C# для всего остального, введение VB.NET просто для сохранения строки XML смешно. –

+0

Нет Мое сообщение в примере того, что может открыть открытый ум, используя проекты более чем одного языка в одном решении. Синтаксис языка VB очень прост в использовании для XML. Я использую как VB, так и C#. Непонятно, сколько «всего остального» сделано в C# прагадхешем. Возможно, он исследует альтернативы. –

+8

Я все еще говорю, что введение другого языка для простой цели сохранения XML-строки является смешным. На самом деле откройте свой разум и подумайте о том, что вы предлагаете: «Пойди, я приведу бульдозер, хотя все, что мне нужно, это мастерка, чтобы переместить эту чашу с песком в сад». –

Смежные вопросы