繁体   English   中英

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

[英]Why can't I use LINQ to get the XML elements in WinRT?

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;

mytask类

public class mytask
{
    public string title { get; set; }
    public string due { get; set; }
}

3,我得到什么
我在程序块的末尾设置了一个中断,当应用程序中断时,我在LinQ部分中找到了:
<1> [doc1]充满了XML内容
<2>但是[myTasks]为空(计数= 0),....

4.为什么以及如何解决
:(

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

doc1.Root.Descendants("task")

使它工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM