我尝试读取从Linq到XML隔离存储的Xml文件。Linq转XML与孤立存储 - 根元素丢失
我的文件包含上面的代码:
<?xml version="1.0" encoding="utf-8"?>
<lense>
<days>14</days>
<date>5/29/2012</date>
<useToday>True</useToday>
<dateUseToday />
</lense>
我写这样的查询:
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream("Lenses.xml", FileMode.Open, store))
{
var custs = from c in XElement.Load(isoStream).Elements("Lense")c;
}
}
但我有以下错误:
缺少根元素
我不知道为什么?你能解释我并帮助我吗?
感谢您的帮助!
但是,当我尝试下面的代码,我有相同的根元素错误。
var custs = from c in XDocument.Load(isoStream).Elements("Lense")
select c;
我用这个代码,看看我的XML文件存储在独立存储:
using (StreamReader reader = new StreamReader(store.OpenFile("Lenses.xml", FileMode.Open)))
{
MessageBox.Show(reader.ReadToEnd());
}
和XML文件仅包含一个元素:
<?xml version="1.0" encoding="utf-8"?>
<lense>
<days>14</days>
<date>5/29/2012</date>
<useToday>True</useToday>
<dateUseToday />
</lense>
感谢帮帮我 !
我知道我可以操纵我的xml文档用的XmlReader:
using (IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream("Lenses.xml", FileMode.Open, store))
{
isoStream.Position = 0;
XmlReader xmlReader;
xmlReader = XmlReader.Create(isoStream);
xmlReader.MoveToContent();
while (xmlReader.Read())
{
switch (xmlReader.NodeType)
{
case XmlNodeType.Element:
{
if (xmlReader.Name == "date")
{
// Code here
}
}
}
}
}
它的工作原理,但我更喜欢的LINQ to XML解决方案,如果可能的。
感谢您的帮助!
大写与小写L('“Lense”'''')? –
carlosfigueira
如果只是一个案例问题,查询将不返回任何元素,也不会抛出异常。我想你应该尝试从隔离存储中显示你的XML文件的内容,你可能会感到惊讶 –
我今天晚上会测试:) – blasil64