繁体   English   中英

如何遍历一组XElement?

[英]How to loop through a set of XElements?

http://www.dreamincode.net/forums/xml.php?showuser=335389

给定上面的XML,假设每个子组都是相同的,只是值不同,那么如何遍历'lastvisitors'元素内部的每个元素?

//Load latest visitors.
var visitorXML = xml.Element("ipb").Element("profile").Element("latestvisitors");

因此,现在我捕获了包含所需元素的XElement。 有没有一种方法可以遍历元素以获得我需要的东西?

我有一个称为Visitor的POCO对象,其唯一目的是保存必要的信息。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SharpDIC.Entities
{
    public class Visitor
    {
        public string ID { get; set; }
        public string Name { get; set; }
        public string Url { get; set; }
        public string Photo { get; set; }
        public string Visited { get; set; }
    }
}

再次感谢您的帮助。

您可能可以在Linq中执行以下操作:

XDocument xml = XDocument.Parse(xmlString);
var visitors = (from visitor in xml.Descendants("latestvisitors").Descendants("user")
                select new Visitor() {
                  ID = visitor.Element("id").Value,
                  Name = visitor.Element("name").Value,
                  Url = visitor.Element("url").Value,
                  Photo = visitor.Element("photo").Value,
                  Visited = visitor.Element("visited").Value
                });

唯一需要注意的是,我没有进行任何null检查。

只需执行linq查询以选择所有元素作为您的对象即可。

var visitors = (from v in xml.Element("ipb").Element("profile")
                             .Element("latestvisitors").Elements()
               select new Visitor {
                   ID = (string)v.Element("id"),
                   Name = (string)v.Element("name"),

               }).ToList();

暂无
暂无

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

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