可以从隔离存储中读取xml文件

时间:2011-12-25 23:59:47

标签: c# xml windows-phone-7 silverlight-4.0 linq-to-xml

这是一个Silverlight WindowsPhone项目,我正在尝试在Isolatedstorage中创建一个xml文件,然后我尝试从中读取,这里是代码:

using (var file = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    using (var stream = file.OpenFile("MainLBItems.xml", FileMode.Create))
                    {
                        XDocument MainLBItems = new XDocument(
                            new XDeclaration("1.0", "utf-8", "yes"),
                            new XComment("This is a comment"),
                            new XElement("Items")
                        );                        
                        MainLBItems.Save(stream);                        
                    }
                }

问题在于,当我尝试从中读取时,这里是代码

using (var file = IsolatedStorageFile.GetUserStoreForApplication())
            {
                using (var stream = file.OpenFile("MainLBItems.xml", FileMode.Open))
                {
                    XDocument MainLBItems = XDocument.Load(stream);
                    ...
                }
            }

我有一个错误告诉“意外的XML声明.XML声明必须是文档中的第一个节点,并且不允许在它之前出现空白字符。第3行,第12位。” 并抛出一个未处理的XmlException

你能帮我解决这个问题吗?提前谢谢。

我尝试单独添加XML声明,但它也不起作用:

using (var file = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    using (var stream = file.OpenFile("MainLBItems.xml", FileMode.Create))
                    {
                        XDocument MainLBItems = new XDocument();
                        MainLBItems.Declaration=  new XDeclaration("1.0", "utf-8", "yes");
                        MainLBItems.Add(
                            new XComment("This is a comment"),
                            new XElement("Items")
                        );                        
                        MainLBItems.Save(stream);                        
                    }
                }

1 个答案:

答案 0 :(得分:0)

由于您没有发布XML,我只能猜测......当我在文档中没有根节点时,我经常遇到这个问题:

<xml version="1.0" encoding="utf-8" xmlns:myNamespace="...">
<MyNodes>
    .... etc ....
</MyNodes>