为什么我不能使用 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. 为什么以及如何解决
:(

为什么我不能使用 LINQ 在 WinRT 中获取 XML 元素

我认为您情况下的变量doc1实际上是指文档本身。您将必须执行以下操作:

doc1.Root.Descendants("task")

让它工作。