为什么我不能使用 LINQ 在 WinRT 中获取 XML 元素
本文关键字:WinRT 获取 XML 元素 LINQ 不能 为什么 | 更新日期: 2023-09-27 18:37:23
1.我想要
什么从 XML 文件中获取正确的 XML 元素
该 XML
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<tasks>
<task>
<title>Test0001</title>
<due>06/17/2012</due>
</task>
<task>
<title>Test0002</title>
<due>06/17/2012</due>
</task>
<task>
<title>Test0003</title>
<due>06/17/2012</due>
</task>
<tasks>
2.我编码的内容
Linq 块:
StorageFile file1 = await ApplicationData.Current.LocalFolder.GetFileAsync("BetterTask.xml");
XDocument doc1 = new XDocument();
using (var ReadStream1 = await file1.OpenStreamForReadAsync() as Stream)
{
doc1 = XDocument.Load(ReadStream1);
}
var data = from query in doc1.Descendants("task")
select new mytask
{
title = (string)query.Element("title"),
due = (string)query.Element("due")
};
List<mytask> myTasks = data.ToList();
myTodayListBox.ItemsSource = myTasks;
我的任务类
public class mytask
{
public string title { get; set; }
public string due { get; set; }
}
3.我得到
什么我在块的最后一个设置了一个中断,当应用程序中断时,我在 LinQ 部分找到:
<1>[doc1] 充满了 XML 内容
<2>但 [myTasks] 为空(count = 0),....
4. 为什么以及如何解决
:(
我认为您情况下的变量doc1
实际上是指文档本身。您将必须执行以下操作:
doc1.Root.Descendants("task")
让它工作。