我正在尝试将XML字符串作为CLOB从Oracle存储过程返回到C#string。
然后我使用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文件。
我的字符串对于ex来说是巨大的:长度为3382563以及更多。
是否有任何设置让XmlWriter将完整的字符串写入文件。
提前致谢。
答案 0 :(得分: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);
}