一連のXelementsをループする方法は?
-
26-09-2019 - |
質問
http://www.dreamincode.net/forums/xml.php?showuser=335389
上記のXMLを考えると、各児童グループが値が異なるのと同じであることを考えると、「lastVisitors」要素の内部の各要素を繰り返すにはどうすればよいですか?
//Load latest visitors.
var visitorXML = xml.Element("ipb").Element("profile").Element("latestvisitors");
だから今、私は必要なものをすべて含むXelementをキャプチャしました。要素をループして必要なものを取得する方法はありますか?
私は、訪問者と呼ばれるこの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
});
ここでの唯一の注意事項は、ヌルチェックをしなかったことです。
他のヒント
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();
所属していません StackOverflow