Linq to Xml 选择元素

发布于 2024-11-02 18:11:44 字数 1242 浏览 2 评论 0原文

我有这个 xml 文件:

<?xml version="1.0" encoding="utf-8" ?>
<Calendar>
    <item id="34">
      <Date>26 Apr</Date>
      <Name>aa</Name>
      <Date>26 Apr</Date>
      <Name>aaa</Name>
      <Date>23 Apr</Date>
      <Name>aaaa</Name>
      <Date>23 Apr</Date>
      <Name>aaaaa</Name>    
    </item>  
    <item id="35">
      <Date>27 Apr</Date>
      <Name>aa</Name>
      <Date>27 Apr</Date>
      <Name>aaa</Name>
      <Date>27 Apr</Date>
      <Name>aaaa</Name>
      <Date>27 Apr</Date>
      <Name>aaaaa</Name>    
    </item>  
</Calendar>

这是我的课程

public class Calendar
    {
        public string Name{ get; set; }
        public string Data { get; set; }

    }


listBox.ItemsSource = 
from var in xml.Descendants("item")
orderby Convert.ToInt32(var.Attribute("id").Value) ascending
select new Calendar
   {
        Name= var.Element("Name").Value,
        Data = var.Element("Data ").Value,

};

,但在 listBox 中我只有第一个日期和每个项目的名称

I have this xml file:

<?xml version="1.0" encoding="utf-8" ?>
<Calendar>
    <item id="34">
      <Date>26 Apr</Date>
      <Name>aa</Name>
      <Date>26 Apr</Date>
      <Name>aaa</Name>
      <Date>23 Apr</Date>
      <Name>aaaa</Name>
      <Date>23 Apr</Date>
      <Name>aaaaa</Name>    
    </item>  
    <item id="35">
      <Date>27 Apr</Date>
      <Name>aa</Name>
      <Date>27 Apr</Date>
      <Name>aaa</Name>
      <Date>27 Apr</Date>
      <Name>aaaa</Name>
      <Date>27 Apr</Date>
      <Name>aaaaa</Name>    
    </item>  
</Calendar>

this is my class

public class Calendar
    {
        public string Name{ get; set; }
        public string Data { get; set; }

    }


listBox.ItemsSource = 
from var in xml.Descendants("item")
orderby Convert.ToInt32(var.Attribute("id").Value) ascending
select new Calendar
   {
        Name= var.Element("Name").Value,
        Data = var.Element("Data ").Value,

};

but in listBox i have only the first date and name of every item

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

巨坚强 2024-11-09 18:11:44

班级计划
{
静态无效主(字符串[]参数)
{

  XDocument xml =
    XDocument.Load(
      @"Path to your xml");

  var q = from x in xml.Descendants("item")
          orderby Convert.ToInt32(x.Attribute("id").Value) ascending
          select new Calendar
                   {
                     Name = x.Elements("Name").Select(a => a.Value).ToList<String>(),
                     Date = x.Elements("Date").Select(a => a.Value).ToList<String>()
                   };

  List<Calendar> calendars = q.ToList<Calendar>();
}

public class Calendar
{
  public List<String> Name { get; set; }
  public List<String> Date { get; set; }  
} 

}

class Program
{
static void Main(string[] args)
{

  XDocument xml =
    XDocument.Load(
      @"Path to your xml");

  var q = from x in xml.Descendants("item")
          orderby Convert.ToInt32(x.Attribute("id").Value) ascending
          select new Calendar
                   {
                     Name = x.Elements("Name").Select(a => a.Value).ToList<String>(),
                     Date = x.Elements("Date").Select(a => a.Value).ToList<String>()
                   };

  List<Calendar> calendars = q.ToList<Calendar>();
}

public class Calendar
{
  public List<String> Name { get; set; }
  public List<String> Date { get; set; }  
} 

}

妄断弥空 2024-11-09 18:11:44

XElement.Element(elementName)只获取第一个与 elementName 匹配的元素。使用 XElement.Elements(elementName)< 尝试不同的方法/a>

XElement.Element(elementName) only gets the first element that matches the elementName. Try a different approach using XElement.Elements(elementName)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文