richTextBox.Text保存到Xml文件的问题!!!

BearRui 2004-08-10 11:14:03
我知道怎么把richTextBox.Text保存到xml文件。

但请问大家怎样才能把richTextBox.Text的格式也保存进去啊。

比如richTextBox中的颜色设置,richTextBox有些字是红色的,有些是兰色。

请问怎么才能把这些格式也保存到XML文件啊!!!
...全文
266 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pipibug 2004-08-13
  • 打赏
  • 举报
回复
颜色的改动就向被改动颜色的plain text前后加上<color></color>
比如初始文档为123456,相应的xml文档可能为<text>123456</text>,当其中的被34选中,并且改动为红色,相应的xml文档就改为<text>12<red>34</red>56</text>

这是直观的想法,实际应用中还要考虑一些细节。诸如字体和颜色的嵌套就不能用上面的方法直接转化为xml(比如刚才的例子中,再将45改为黑体,相应的xml文件不能直接改为<text>12<red>3<b>4</red>5</b>6</text>,而要做进一步修改为符合xml规范的表示方法,比如<text>12<red>3</red><b><red>4</red>5</b>6</text>)

另外一条路:分析rtf文档中,分析其中的格式信息和plain text,作一个rft reader来转化rtf文件为xml文件。当初我被rtf文档中大把的格式信息吓了一跳,只包含123456这个几个plain text的1.rtf中竟然包含的格式信息有长长的两三行(用记事本打开的时候)。今天发现msdn中有rft的语法说明。而且rtf reader一章中有关于怎样写rtf reader的提示。感觉rtf格式还是很开放的,不像word的天书格式。

所以现在我觉得还是参考rft语法说明去编写一个rtf reader来转化rtf文档的思路比较好,这样可以将任何rft文档转化为xml,而不只是在自己创建rtf文档的时候才能同时创建一个等效的xml文档,更加灵活。
孟子E章 2004-08-11
  • 打赏
  • 举报
回复
using System;
using System.IO;
using System.Xml;
..............

XmlDocument doc = new XmlDocument();
doc.LoadXml("<root/>");
XmlCDataSection CData;
CData = doc.CreateCDataSection(richTextBox.Text);
XmlElement root = doc.DocumentElement;
root.AppendChild(CData);
doc.Save("d:\\xxx.xml");
}
}
saucer 2004-08-11
  • 打赏
  • 举报
回复
rtf is a text format, you can use YourRichTextBoxControl.Rtf.ToString() to get the string, then save it to an xml node, but you might need to escape those characters like < and &.

of course, this might not be what you want, but see

http://www.rtf2fo.com/help.html

http://www.rtf-to-xml.com/
BearRui 2004-08-11
  • 打赏
  • 举报
回复
TO: pipibug()

你说:直接将改动存到自己创建的xml文件中去

请问指的是什么改动,颜色的改动存什么内容。
interim 2004-08-11
  • 打赏
  • 举报
回复
1.仅仅添加文字
2.把文字格式作为属性添加进去
==========
如果同一行文字有不同的颜色、字体、大小等的话,是个问题
pipibug 2004-08-11
  • 打赏
  • 举报
回复
大胆支着:

可以将richtextbox的内容存为文件,然后分析文件中的格式信息。不过看了看他的.rtf文件中的格式信息一大堆,头晕~

然后想到,跟踪对richtextbox输入的时候的textchanged, 和修改格式的fontchanged/fontcolorchanged事件,直接将改动存到自己创建的xml文件中去。

水平不高,不过希望对你有所帮助

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧