首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

字符串保存为xml文件 提示出错,困扰了小弟我3天了

2012-03-16 
字符串保存为xml文件 提示出错,困扰了我3天了!System.Xml.XmlDocumentdcnewXmlDocument()dc.Load(newSys

字符串保存为xml文件 提示出错,困扰了我3天了!
System.Xml.XmlDocument   dc   =   new   XmlDocument();
dc.Load(new   System.IO.MemoryStream(System.Text.Encoding.Default.GetBytes(bts)));
dc.Save(gncls.apppath()   +   @ "\login.xml ");
MessageBox.Show( "保存成功! ");
把字符保存成xml文件   错误提示:   “.”(十六进制值   0x00)是无效字符。   行   9,位置   1。



[解决办法]
先顶一个
[解决办法]
我的bts是怎么来的,是什么数据?
[解决办法]
dc.LoadXml
[解决办法]
十六进制值 0x00 这个是字符串结束吧

[解决办法]
估计是你从byte转字符串过程中有非法字符啥的
[解决办法]
代码给详细点
[解决办法]
帮顶
[解决办法]
Xml的值中不能包括"."字符,如果有这种情况,要把它转成相应的Xml的字符.
[解决办法]
bts是xml 字符串?
那么没有必要在进行转换

string xxml = " <?xml version=\ "1.0\ " encoding=\ "utf-8\ "?> <Xmlmessage> <message> <id> 123 </id> <content> 你好 </content> </message> <message> <id> 456 </id> <content> 你好吗 </content> </message> </Xmlmessage> ";
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(xxml);
xdoc.Save(gncls.apppath() + @ "\login.xml ");

[解决办法]
将xml所有非法的字符串,去掉,或者替换为转义字符
[解决办法]
把你得到的bts 字符串 贴出来看看
[解决办法]
你把要保存到xml的字符串先显示出来看,是哪里出的问题?
[解决办法]
要转字符串,可以用高级流吧,你在内存流外再套一个流
[解决办法]
不要用XmlDocument,用保存文本文件的方式保存字符串,文件的后缀名为“.xml”
[解决办法]
<![CDATA[...]]>
[解决办法]
这个传过来的xml内容 本身有点问题

<?xml version= "1.0 " encoding= "utf-8 " ?>
<RESPONSE>
<PAGESIZE> 000385 </PAGESIZE>
<HEADER>
<COMMAND> LOGIN </COMMAND>
<QUERYID> 9 </QUERYID>
</HEADER>
<BODY>
<STATE> 1 </STATE>
<ROLE> 12345678,cv2334545 </ROLE>
<LOGINID> 1204 </LOGINID>
<CONFIG_VER> 1 </CONFIG_VER>
<NEEDDOWN> 1 </NEEDDOWN>
<CONFIGINFOA> 初始企业配置,调试 </CONFIGINFOA>
<QUESTIION> -1 </QUESTIION>
<CBCJ> -1 </CBCJ>
</BODY>
</RESPONSE>
下面行为空就没错
<CONFIGINFOA> </CONFIGINFOA>
是不是你转换的时候 中文编码的问题.
[解决办法]
那里没错 是编码搞错了
<?xml version= "1.0 " encoding= "gb2312 " ?>


[解决办法]
<?xml version= "1.0 " encoding= "utf-8 " ?>
[解决办法]

dc.Load(new System.IO.MemoryStream(System.Text.Encoding.Default.GetBytes(bts)));

------>

dc.Load(new System.IO.MemoryStream(System.Text.Encoding.GetEncoding( "GB2312 ").GetBytes(bts)));


[解决办法]
mark
[解决办法]
<![CDATA[...]]>
这个应该行吧.
最好先把字符串贴出来.
[解决办法]
mark
[解决办法]
你的xml有语法错误,调试的时候把bts的内容复制出来,在VS.Net里面新建一个XML文件格式化再验证一下是什么错误
[解决办法]

lz的方法有脱裤子放屁之嫌

doc.LoadXml( "socket 传过来的字符串 " )

[解决办法]
帮顶
[解决办法]
Stream的Read方法的返回值就是实际读取长度。

热点排行