字符串保存为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 " ?>