Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将XML字符串写入文件?_C#_Xml_.net 3.0 - Fatal编程技术网

C# 如何将XML字符串写入文件?

C# 如何将XML字符串写入文件?,c#,xml,.net-3.0,C#,Xml,.net 3.0,我有一个字符串,其值为: <ROOT> qwerty <SampleElement>adsf</SampleElement> <SampleElement2>The text of the sample element2</SampleElement2> </ROOT> qwerty adsf 示例元素2的文本 如何使用C#3.0将此字符串写入文件 提前谢谢。您必须使用。更具体地说,使用Xm

我有一个字符串,其值为:

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

qwerty
adsf
示例元素2的文本
如何使用C#3.0将此字符串写入文件

提前谢谢。

您必须使用。更具体地说,使用
XmlDocument.CreateCDataSection
创建一个
xmlcatasection
,并将字符串作为参数提供。

尝试以下操作:

string s = "<xml><foo></foo></xml>";
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(s);
xdoc.Save("myfilename.xml");
string s=”“;
XmlDocument xdoc=新的XmlDocument();
xdoc.LoadXml;
Save(“myfilename.xml”);
还有一个额外的好处,就是如果XML无效,加载将失败。

我知道你说的是C,但你是否尝试过VB.NET中的XML文本。太棒了

File.WriteAllText("myFile.xml",myString);
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
公共类程序
公共共享子主目录()
Dim myKeyBoardStyle=“dvorak”
将myXML设置为像素=
qwerty
adsf
示例元素2的文本
Console.WriteLine(myXML.ToString())
保存(“.\fileFromXElement.xml”)
端接头
末级
注意将代码结果注入到输出中的整洁元素:

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

qwerty
DVORAKADS示例元素2的文本

剪掉[删除的意见]

这个标题很容易引起误解。它真的应该说一些关于C#Andrew中的文件I/O为什么要回滚?我认为我们应该尽可能尊重原始帖子,包括OP写的“大家好”的东西。没有什么私人的:)足够公平-当你回退时,你能投入一些理性的东西来防止我们在过去几天看到的回退战争吗!:是的!这是一个很好的建议——我以后会这么做的——谢谢!这不是适合该工作的正确工具。你的文章是一个只知道一种工具并试图将所有东西都强加于它的局限性的例子。如果OP在其他方面都使用C#,那么仅仅为了保存XML字符串而引入VB.NET是荒谬的。我的文章没有举一个例子,说明开放的思想可以通过在同一个解决方案中使用多种语言的项目来做些什么。VB语言语法非常容易用于XML。我同时使用VB和C。目前还不清楚普拉格迪什在C#中完成了多少“其他一切”。我仍然认为,为了保存XML字符串而引入另一种语言是荒谬的。实际上,打开你的思路,想想你的建议:“天啊,我会带一台推土机,尽管我只需要一把铲子,就可以把这杯沙子运到花园里。”+1用于节省将文件转换为XDocument的开销,只是为了方便地打个IO电话。对于序列化或无名称空间的Xml,这种方法更有效。