I have a string and its value is:
qwerty
adsf
The text of the samp
You'll have to use CDATA section. More specifically, create a XmlCDataSection
using XmlDocument.CreateCDataSection
and supply your string as a parameter.
Try this:
string s = "<xml><foo></foo></xml>";
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(s);
xdoc.Save("myfilename.xml");
Has the added benefit that the load will fail if your XML is invalid.
I know you said C# but have you tried VB.NET for XML Literals. Amazing stuff.
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
Notice the neat element which injects the result of code in into the output:
<?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 [removed opinions]
File.WriteAllText("myFile.xml",myString);