C# 根级别的数据无效。第1行,位置1
我正在从internet下载一个xml文件,并将其保存在独立存储中。如果我试图阅读它,我会得到一个错误: 根级别的数据无效。第1行,位置1 这就是我下载和保存文件的方式 我试着这样读:C# 根级别的数据无效。第1行,位置1,c#,xml,windows-phone-7,C#,Xml,Windows Phone 7,我正在从internet下载一个xml文件,并将其保存在独立存储中。如果我试图阅读它,我会得到一个错误: 根级别的数据无效。第1行,位置1 这就是我下载和保存文件的方式 我试着这样读: IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile("myfile.xml", FileMode.Open, FileAccess.Read); XDocument xmlDoc = XDocument.Load(fileStream
IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile("myfile.xml", FileMode.Open, FileAccess.Read);
XDocument xmlDoc = XDocument.Load(fileStream);
这就是我得到错误的地方
我没有问题读取相同的文件而不下载并保存到独立的存储。。。所以一定有故障。这是:
writer.WriteLine(e.Result);
不会做你认为它会做的事。它只是在流上调用ToString,并将结果写入文件
我建议您完全避免使用StreamWriter,只需从e.Result直接复制到IsolatedStorageFileStream:
其中CopyStream是一种只复制数据的方法,例如
public static void CopyStream(Stream input, Stream output)
{
byte[] buffer = new byte[8 * 1024];
int read;
while((read = input.Read (buffer, 0, buffer.Length)) > 0)
{
output.Write (buffer, 0, read);
}
}
这:
不会做你认为它会做的事。它只是在流上调用ToString,并将结果写入文件
我建议您完全避免使用StreamWriter,只需从e.Result直接复制到IsolatedStorageFileStream:
其中CopyStream是一种只复制数据的方法,例如
public static void CopyStream(Stream input, Stream output)
{
byte[] buffer = new byte[8 * 1024];
int read;
while((read = input.Read (buffer, 0, buffer.Length)) > 0)
{
output.Write (buffer, 0, read);
}
}
你所说的内容是什么意思?这是一个典型的xml文件。我没有问题读取相同的文件而不下载并保存到独立的存储。。。那一定是有错了。你有没有试过看文件的内容。我强烈怀疑这不是一个典型的XML文件……您所说的内容是什么意思?这是一个典型的xml文件。我没有问题读取相同的文件而不下载并保存到独立的存储。。。那一定是有错了。你有没有试过看文件的内容。我强烈怀疑这不会是一个典型的XML文件……感谢您如此亲切地教育我。我还发现文件的内容是MS.Internal.InternalMemoryStream,而不是我所期望的xml内容。我必须安装独立的插件来检查独立的存储,这就是为什么需要时间的原因。你的建议非常有效!!!谢谢你如此亲切地教育我。我还发现文件的内容是MS.Internal.InternalMemoryStream,而不是我所期望的xml内容。我必须安装独立的插件来检查独立的存储,这就是为什么需要时间的原因。你的建议非常有效!!!
public static void CopyStream(Stream input, Stream output)
{
byte[] buffer = new byte[8 * 1024];
int read;
while((read = input.Read (buffer, 0, buffer.Length)) > 0)
{
output.Write (buffer, 0, read);
}
}