这是一个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);
}
}
答案 0 :(得分:0)
由于您没有发布XML,我只能猜测......当我在文档中没有根节点时,我经常遇到这个问题:
<xml version="1.0" encoding="utf-8" xmlns:myNamespace="...">
<MyNodes>
.... etc ....
</MyNodes>