HRESULT:0xC00CE556-将字符串加载到XML我正在尝试加载包含从SkyDrive下载的XML的字符串。XmlDocumentmyXML=newXmlDocument();myXML.LoadXml(importXMLDocument);当我调用上面的代码时,出现以下错误:HRESULT异常:0xC00CE556这是我试图从字符串转换并加载到XML文档的XML:Tahoe2004977425w-30600000977422012-05-04T19:53:53.358-06:002012-08-04T19:53:53.358-06:00100742假假30003真2真Maz真3201121504abcdefg0w-20000000215042012-09-14T18:05:02.298-06:002013-02-14T18:05:02.298-07:0026504falsefalse64.75需要500的新ti+res5truetruefalse2更新:这是我的下载代码来自SkyDrive的XML文件(使用API):另一个“?”昨晚添加以确认此过程正在从SKYDrive下载文件。下面是我执行下载和“LoadXml”调用的整个函数。任何帮助表示赞赏。privateasyncvoidreadFileInfo(stringfolderId){LiveOperationResultoperationResultFile=awaitclient.GetAsync(folderId+"/files");动态结果文件=operationResultFile.Result;IDictionaryfileData=(IDictionary)resultFile;列出文件=(List)fileData["data"];foreach(objectiteminfiles){IDictionaryfile=(IDictionary)item;if(file["name"].ToString()=="ocha.txt"){LiveDownloadOperationResultDLFile=awaitclient.BackgroundDownloadAsync(file["source"].ToString();varstream=awaitDLFile.GetRandomAccessStreamAsync();varreadStream=stream.GetInputStreamAt(0);DataReaderreader=newDataReader(readStream);uintfileLength=awaitreader.LoadAsync((uint)stream.Size);stringcontent=reader.ReadString(fileLength);XmlDocumentmyXML=newXmlDocument();myXML.LoadXml(content.ToString());VM.importVehicles(content);break;}}}即使读取本地文件,我也能够重现错误。错误的原因是DataReader在内容之前放置一些额外的字节。您在调试器中看不到它们,但是当您将读取内容放入Notepad++时,您会得到一个额外的问号:?我怀疑额外的字节是字节顺序标记(BOM)字节(0xEF0xBB0xBF(239187191))。我试图将DataReader的编码显式设置为UTF8,但这并没有改变任何东西。似乎是DataReader中的错误。顺便提一句。从DataReader读取字节并尝试使用Encoding.UTF8.GetString转换它们时,我遇到了同样的错误。即使该方法也无法识别BOM。OK两种解决方法:1)使用FileIO.ReadTextAsync:stringcontent=awaitFileIO.ReadTextAsync(file);2)使用StreamReader:using(varstream=awaitfile.OpenReadAsync()){using(varreadStream=stream.AsStreamForRead()){using(StreamReaderstreamReader=newStreamReader(readStream)){stringcontent=streamReader.ReadToEnd();XmlDocumentdoc=newXmlDocument();doc.LoadXml(内容);}}}更新:ReadFileInfo方法看起来可以避免此BOM问题。请注意,AsStreamForRead是System.IO中可用的扩展方法(使用System.IO;在您的代码中)。以上就是C#学习教程:HRESULT:0xC00CE556–LoadingstringsintoXML全部内容分享。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注~动态结果文件=operationResultFile.Result;IDictionaryfileData=(IDictionary)resultFile;列出文件=(List)fileData["data"];foreach(objectiteminfiles){IDictionaryfile=(IDictionary)item;if(file["name"].ToString()=="ocha.txt"){LiveDownloadOperationResultDLFile=awaitclient.BackgroundDownloadAsync(file["source"].ToString());使用(varstream=awaitDLFile.GetRandomAccessStreamAsync()){使用(varreadStream=stream.AsStreamForRead()){使用(StreamReaderstreamReader=newStreamReader(readStream)){字符串内容=streamReader.ReadToEnd();XmlDocumentdoc=newXmlDocument();doc.LoadXml(内容);VM.importVehicles(内容);休息;}}}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处:
