如何循环一组XElements?

2 c# xml xelement linq-to-xml

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

鉴于上面的XML,我如何迭代'lastvisitors'元素中的每个元素,因为每个子组只有不同的值相同?

//Load latest visitors.
var visitorXML = xml.Element("ipb").Element("profile").Element("latestvisitors");
Run Code Online (Sandbox Code Playgroud)

所以现在我已经捕获了包含我需要的所有东西的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; }
    }
}
Run Code Online (Sandbox Code Playgroud)

再次感谢您的帮助.

Gre*_*rts 5

您可以在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
                });
Run Code Online (Sandbox Code Playgroud)

这里唯一需要注意的是我没有做任何空检查.