C# 需要在C中使用XMLText的建议吗#

C# 需要在C中使用XMLText的建议吗#,c#,xml,C#,Xml,我正在编写一个输出模块,以便在另一个程序上可视化我的数据 如果检查代码,我会将点坐标添加到字符串中,然后将此字符串作为TextNode添加到另一个元素中。问题是分数可以超过500000 有没有更好的方法将大量文本写入xml,或者这样可以吗 XMLElement points = doc.CreateElement("VTK", "DataArray"); string str = ""; for (int i = 0; i < sim.NumberOfParticles; i++) {

我正在编写一个输出模块,以便在另一个程序上可视化我的数据

如果检查代码,我会将点坐标添加到字符串中,然后将此字符串作为TextNode添加到另一个元素中。问题是分数可以超过500000

有没有更好的方法将大量文本写入xml,或者这样可以吗

XMLElement points = doc.CreateElement("VTK", "DataArray");

string str = "";

for (int i = 0; i < sim.NumberOfParticles; i++)
{
str += sim.pPosX[i].ToString() + " " + sim.pPosY[i] + " " + sim.pPosZ[i] + "\n"
}
XmlText coordinates = doc.CreateTextNode(str);
points.AppendChild(coordinates);
XMLElement points=doc.CreateElement(“VTK”、“DataArray”);
字符串str=“”;
对于(int i=0;i
对于此数量的数据,请使用
XmlWriter
而不是
XmlDocument
。It流和资源不再是问题。

对于这些数据量,请使用
XmlWriter
而不是
XmlDocument
。It流和资源不再是问题。

Flo是对的,但是您的整个迭代机制有点混乱,可能会以更自然的方式编写,创建XML对象而不是使用字符串连接

但是,您在这里要做的一件非常沉重的事情是,当您应该使用stringbuilder时,使用字符串来搅乱您的记忆,通过启发式,您甚至可以准确地默认stringbuilder的大小,或者将numberofparticles的长度乘以将为每个粒子生成的字符串的一般长度来接近它


如果你要坚持使用字符串连接,一定要使用stringbuilder,否则我建议使用适当的XML对象来保存XML数据,而不是字符串。

Flo是对的,但是你的整个迭代机制有点混乱,可能会以更自然的方式编写,创建XML对象,而不是使用字符串连接

但是,您在这里要做的一件非常沉重的事情是,当您应该使用stringbuilder时,使用字符串来搅乱您的记忆,通过启发式,您甚至可以准确地默认stringbuilder的大小,或者将numberofparticles的长度乘以将为每个粒子生成的字符串的一般长度来接近它


如果你要坚持使用字符串连接,一定要使用stringbuilder,否则我建议使用适当的XML对象来保存XML数据,而不是字符串。

Thx alot,我会尝试XmlWriter。Thx alot,我会尝试XmlWriter。这正是XmlWriter的含义。它是在
StringBuilder
或您选择的流之上实现的,并且它了解如何正确编码XML。说真的,查一查:这正是XmlWriter。它是在
StringBuilder
或您选择的流之上实现的,并且它了解如何正确编码XML。说真的,查一下: