2017-07-28 95 views
0

我想从XML存储过程返回一个XML字符串作为CLOB到C#字符串。XmlWriter修剪我的字符串

然后我使用XmlWriter类将此字符串写入文件。

我的代码看起来像以下:

string myString= ((Oracle.ManagedDataAccess.Types.OracleClob)(cmd.Parameters["paramName"].Value)).Value.ToString(); 
string fileName = DateTime.Now.ToString("yyyyMMddHHmmss"); 
var stream = new MemoryStream(); 
var writer = XmlWriter.Create(stream); 
writer.WriteRaw(myString); 
stream.Position = 0; 
var fileStreamResult = File(stream, "application/octet-stream", "ABCD"+fileName+".xml"); 
return fileStreamResult; 

当我检查了我的CLOB输出它完全返回到MyString的。

当我检查我的最终结果时,XML文件在最后被修剪。

我的字符串将是巨大的前:长度3382563和更多。

是否有任何XmlWriter将整个字符串写入文件的设置。

在此先感谢。

+1

为什么在那里有XmlWriter?你期望它做什么? –

回答

1

听起来像所有你想要做的是从你的数据库中获取一些字符串值,并将该字符串值写入文本文件。字符串xml实际上并没有强制您使用XML特定的类或方法,除非您想执行特定于XML的操作,而这些操作在代码段中未看到。因此,我建议你简单地获取字符串值并以最简单的方式将其吐出到文件中。

string myString = " blah blah blah keep my spaces "; 

using (StreamWriter sw = new StreamWriter(@"M:\StackOverflowQuestionsAndAnswers\XMLWriterTrimmingString_45380476\bin\Debug\outputfile.xml")) 
{ 
    sw.Write(myString); 
}