日期:2014-05-20  浏览次数:20739 次

关于XML的简单问题,在线等!谢谢
我自己定义一个64K空间,然后传递给DLL,DLL往里面以XML的格式写。写完后,我要把它读出来。请问怎么写呢?
Byte[]   btData   =   new   byte[65536];

XmlReader只有对文件或者数据流进行读。怎么对这个数组操作呢?


------解决方案--------------------
xml是文本的,所以你这个数组的内容也要转换成文本,比如0xAABBCCDD之类的,但这样的转换效率就会低了。
------解决方案--------------------
up
------解决方案--------------------
MemoryStream
------解决方案--------------------
把xml文本写到数组里可以用Converter.GetBytes()
------解决方案--------------------
MemoryStream mstream = new MemoryStream(btData);
XmlTextReader xml = new XmlTextReader(mstream);
试试看
------解决方案--------------------
up
------解决方案--------------------
还是跟编码有关。
你先把btData转换成字符串,Encoding.GetString
再用doc.LoadXml
------解决方案--------------------
up
------解决方案--------------------
字符串数组是有编码的,
MemoryStream mstream = new MemoryStream(btData); //使用默认的编码格式,一般是关闭GB2312,有可能对不上号,需要跟byte[]先协商好,然后使用指定格式转换。
不过最好是使用字符串做参数,直接就可以使用,系统会自动搞定编码的问题。