C#和XML交互中处理text字段回车的问题
各位高手:我想用C#写一个winform,把一个asp的论坛的数据库做一个本地的阅读器,用this.dataSet1.ReadXml获得远端的数据之后,写入本地机器,好容易解决了汉字乱码的问题,有发现原来是text的字段中的回车,在这里被写成“ 
”然后this.dataSet1.ReadXml就不能读取这个xml文件了。。请问各位大侠如何处理这个问题?
谢谢!
问题点数:0、回复次数:13Top
1 楼wenyuan(苑)回复于 2003-10-02 13:43:32 得分 0
你用什么方法写入机器的?不会直接用IO的吧?Top
2 楼qqwwee1981(苯苯)回复于 2003-10-02 14:07:02 得分 0
用的this.dataSet1.WriteXml
然后再用this.dataSet1.ReadXml就出错
另外补充一下,同样的代码,只要不读取text类型,并且包含回车的字段,调试成功。
可惜我写的是论坛客户端,必须有text的字段。Top
3 楼Gabriel_tosh(加百利)回复于 2003-10-02 14:51:08 得分 0
直接传Dataset得了~Top
4 楼zdy_8212(zdy_8212)回复于 2003-10-02 16:06:07 得分 0
你的回传信息指明了这是一个经过HTML转换过的码别,只要不让HTML转码,直接传输就可以达到要求,至于你在没有使用TEXT是正常,那只是提交的内容中只有这个TEXT字段必须经过编码!!!Top
5 楼qqwwee1981(苯苯)回复于 2003-10-03 08:04:54 得分 0
代码如下:
this.dataSet1.Locale = new System.Globalization.CultureInfo("zh-CN");
this.dataSet1.ReadXml(@"http://127.0.0.2/bbs/qqq");
this.dataSet1.WriteXml(new System.Xml.XmlTextWriter(@"E:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\bbs\bin\Debug\bbs.xml",System.Text.Encoding.GetEncoding("GB2312")));
以上部分成功。。然后我吧this.dataSet1.ReadXml(@"http://127.0.0.2/bbs/qqq");
修改成:
this.dataSet1.ReadXml(@"E:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\bbs\bin\Debug\bbs.xml");
就报错。。发现原来是text的字段中的回车,在这里被写成“ 
”。。。所以无法读取
希望高手能给一些实际的代码,帮助我解决这个问题。。我自己已经努力了一个星期了。。Top
6 楼shixueli(我们总是不能随心所欲)回复于 2003-10-03 08:32:50 得分 0
你可以用XmlDocument 试试:
XmlDocument doc=new XmlDocument();
doc.Load(Server.MapPath("t.xml"));
XmlNode root=doc.DocumentElement;
root.SelectSingleNode("ha").InnerText="\n测试d\n";
doc.Save(Server.MapPath("t.xml"));Top
7 楼shixueli(我们总是不能随心所欲)回复于 2003-10-03 08:34:28 得分 0
而且
应该是
吧?

确实是回车,如果xml的encoding是GB2312的话Top
8 楼qqwwee1981(苯苯)回复于 2003-10-03 10:38:18 得分 0
1 我写的是winform不是webform
2 你的方式我尝试了,结果
没有消除,所有的汉字都乱码了。。Top
9 楼lisoft2002(lisoft2002)回复于 2003-10-03 11:48:52 得分 0
upTop
10 楼qqwwee1981(苯苯)回复于 2003-10-04 22:21:52 得分 0
upTop
11 楼qqwwee1981(苯苯)回复于 2003-10-05 10:30:54 得分 0
最后踢一次。。还是没人解决。。我就放弃了。。Top
12 楼shixueli(我们总是不能随心所欲)回复于 2003-10-05 22:23:19 得分 0
你看看经过方法WriteXml之后生成的xml文件,看看encoding是什么,然后试着修改一下这个属性,也许是这个问题Top
13 楼qqwwee1981(苯苯)回复于 2003-10-05 22:41:06 得分 0
代码如下:
this.dataSet1.Locale = new System.Globalization.CultureInfo("zh-CN");
this.dataSet1.ReadXml(@"http://127.0.0.2/bbs/qqq");
this.dataSet1.WriteXml(new System.Xml.XmlTextWriter(@"E:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\bbs\bin\Debug\bbs.xml",System.Text.Encoding.GetEncoding("GB2312")));
以上部分成功。。然后我吧this.dataSet1.ReadXml(@"http://127.0.0.2/bbs/qqq");
修改成:
this.dataSet1.ReadXml(@"E:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\bbs\bin\Debug\bbs.xml");
就报错。。发现原来是text的字段中的回车,在这里被写成“ 
”。。。所以无法读取
希望高手能给一些实际的代码,帮助我解决这个问题。。我自己已经努力了两个星期了。。Top




