如何把string转换成xml 现有字符串strings s="<?xml version="1.0" encoding="utf-8"?><手术><手术申请预约信息><返回信息><PatientNo></PatientNo><手术流水号>20100819140705M899</手术流水号> </返回信息></手术申请预约信息></手术>"如何把他保存为xml文件? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 strings s="<?xml version="1.0" encoding="utf-8"?><手术><手术申请预约信息><返回信息><PatientNo></PatientNo><手术流水号>20100819140705M899</手术流水号> </返回信息></手术申请预约信息></手术>"XmlDocument doc = new XmlDocument();doc.LoadXml("s")doc.Save(fileName) FileStream fs = new FileStream("E:\\1\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".xml", FileMode.Append); StreamWriter streamWriter = new StreamWriter(fs); streamWriter.BaseStream.Seek(0, SeekOrigin.End); streamWriter.WriteLine(s); streamWriter.Flush(); streamWriter.Close();试试看 LZ不会连输出文本文件都不会吧?StreamWriter.Write 或者是用File.WriteAllText 方法 用Stream来操作文件实在太麻烦,不适合初学者,所以微软在.net 2.0中增加了些简便使用的API StreamWriter streamWriter = new StreamWriter(path);streamWriter.WriteLine(s);streamWriter.Close();试试看 你是要只在控件打开吗?就像生成文本文件一样 /*string filename = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\duanxinwenjian" + ".html"; FileStream fs = new FileStream(@filename, FileMode.OpenOrCreate, FileAccess.Write); StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("GB2312")); sw.Flush(); sw.BaseStream.Seek(0, SeekOrigin.Begin); sw.WriteLine("文本"); 或sw.Write("文本"); sw.Flush(); sw.Close(); webBrowser1.Url = new System.Uri(filename);*/ // webBrowser1.Navigate("about:blank"); strings str=@"<?xml version="1.0" encoding="utf-8"?><手术><手术申请预约信息><返回信息><PatientNo></PatientNo><手术流水号>20100819140705M899</手术流水号> </返回信息></手术申请预约信息></手术>";StreamWriter sw = null; try { sw = new StreamWriter(path + "\\" + xmlFileName + ".xml", false, System.Text.Encoding.GetEncoding("gb2312")); //输出文件路径 sw.Write(str); //输出 sw.Flush(); } catch (Exception ex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } 发错了 string filename = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\duanxinwenjian" + ".html"; FileStream fs = new FileStream(@filename, FileMode.OpenOrCreate, FileAccess.Write); StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("GB2312")); sw.Flush(); sw.BaseStream.Seek(0, SeekOrigin.Begin); sw.WriteLine("文本"); 或sw.Write("文本"); sw.Flush(); sw.Close(); webBrowser1.Url = new System.Uri(filename); 用XmlDocument,把它解析为对象,纯属脱裤子放屁,多此一举 XmlDocument xmldoc = new XmlDocument();xmldoc.Load(new System.IO.MemoryStream(System.Text.Encoding.GetEncoding("GB2312").GetBytes(""))); string xml = @"<?xml version=""1.0""?>";XmlDocument doc= new XmlDocument();doc.LoadXml(xml);doc.Save("c:\\a.xml"); 不见得,最起码它能验证这个xml结构是否有没有异常,如果把一个错误格式的xml保存成xml文件,你觉得合适吗? byte[] buffer = Encoding.UTF8.GetBytes(str);XmlDocument xml = new XmlDocument(); try { xml.Load(new MemoryStream(buffer)); Debug.WriteLine("XML加载完毕"); } catch (Exception ex) { Debug.WriteLine(ex.Message); } 你不要偷换概念,我承认可以用一行搞定,更简单方便但是现在讨论的问题是 用Stream来操作文件是否太麻烦的问题三行就麻烦不适合初学者了? 不好意思,我认为FileStream StreamWriter用于基本的IO操作是初学者需要掌握的这些掌握以后,并不耽误在适当的时候使用你说的简便的API 我的本意是其实是想纠正下 3楼的关于StreamWriter不恰当的用法写文本文件直接用StreamWriter就可以了,没必要包装个FileStream,Seek没必要,在文件尾追加,只要在构造函数传入append参数为true即可Flush也是多此一举,因为紧接着执行的Close会做Flush所做的工作的这些很基础、很常用的东西,最好能熟练掌握没事可以多看看MSDN 既然是保存的“XML”文件,就应该保证XML的完整性,如果是保存的文本文件那随便楼主的问题“如何把string转换成xml”,如果直接保存,哪来的转换?逻辑思维有问题?或许 弹出js的层 一个C#小问题 自定义控件 c# 画图 (新手 ^_^) 请问如何动态的在WinForm里面添加一个Button? 关于自定义控件的问题 谁的帮忙完善一下我的一个项目管理系统,酬谢 怎样判断ActiveDirectory活动目录是否连接??急急急急急急急急急急急急急!!!!!!!!!!!在线等 文件夹左边可以伸缩展开的“常见任务”栏是用什么控件做的? 水晶报表的问题 Jquery分页的问题 用那些语言可以和手机通讯
strings s="<?xml version="1.0" encoding="utf-8"?><手术><手术申请预约信息><返回信息><PatientNo></PatientNo><手术流水号>20100819140705M899</手术流水号> </返回信息></手术申请预约信息></手术>"
XmlDocument doc = new XmlDocument();
doc.LoadXml("s")
doc.Save(fileName)
StreamWriter streamWriter = new StreamWriter(fs);
streamWriter.BaseStream.Seek(0, SeekOrigin.End);
streamWriter.WriteLine(s);
streamWriter.Flush();
streamWriter.Close();
试试看
StreamWriter.Write
streamWriter.WriteLine(s);
streamWriter.Close();试试看
就像生成文本文件一样
/*string filename = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\duanxinwenjian" + ".html";
FileStream fs = new FileStream(@filename, FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("GB2312"));
sw.Flush();
sw.BaseStream.Seek(0, SeekOrigin.Begin); sw.WriteLine("文本");
或sw.Write("文本");
sw.Flush();
sw.Close();
webBrowser1.Url = new System.Uri(filename);*/
// webBrowser1.Navigate("about:blank");
strings str=@"<?xml version="1.0" encoding="utf-8"?><手术><手术申请预约信息><返回信息><PatientNo></PatientNo><手术流水号>20100819140705M899</手术流水号> </返回信息></手术申请预约信息></手术>";
StreamWriter sw = null;
try
{
sw = new StreamWriter(path + "\\" + xmlFileName + ".xml", false, System.Text.Encoding.GetEncoding("gb2312")); //输出文件路径
sw.Write(str); //输出
sw.Flush();
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(ex.Message);
HttpContext.Current.Response.End();
}
finally
{
sw.Close();
}
string filename = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\duanxinwenjian" + ".html";
FileStream fs = new FileStream(@filename, FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("GB2312"));
sw.Flush();
sw.BaseStream.Seek(0, SeekOrigin.Begin); sw.WriteLine("文本");
或sw.Write("文本");
sw.Flush();
sw.Close();
webBrowser1.Url = new System.Uri(filename);
xmldoc.Load(new System.IO.MemoryStream(System.Text.Encoding.GetEncoding("GB2312").GetBytes("")));
XmlDocument doc= new XmlDocument();
doc.LoadXml(xml);
doc.Save("c:\\a.xml");
byte[] buffer = Encoding.UTF8.GetBytes(str);
XmlDocument xml = new XmlDocument();
try
{
xml.Load(new MemoryStream(buffer)); Debug.WriteLine("XML加载完毕");
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
你不要偷换概念,我承认可以用一行搞定,更简单方便
但是现在讨论的问题是 用Stream来操作文件是否太麻烦的问题
三行就麻烦不适合初学者了?
是初学者需要掌握的
这些掌握以后,并不耽误在适当的时候使用你说的简便的API
写文本文件直接用StreamWriter就可以了,没必要包装个FileStream,
Seek没必要,在文件尾追加,只要在构造函数传入append参数为true即可
Flush也是多此一举,因为紧接着执行的Close会做Flush所做的工作的这些很基础、很常用的东西,最好能熟练掌握
没事可以多看看MSDN
楼主的问题“如何把string转换成xml”,如果直接保存,哪来的转换?
逻辑思维有问题?或许