如何在基于属性值的XMl文件中搜索...

时间:2011-07-30 06:39:10

标签: c# asp.net xml

我正在使用此链接中的xml文件..

http://www.goalserve.com/samples/soccer_livescore.xml

.. 让我们说“类别”是我们的“锦标赛” 我需要搜索并显示--- 1. gridview或datalist中所有“锦标赛”的列表。 2.所选“锦标赛”中的比赛列表.. 3.比赛中的事件列表等。

请指导我如何实现这一点......使用Dataset.Readxml但是字段的内部链接变得非常复杂......

请指导......

Thanks..n..regards,

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用LINQ to XML。像这样:

var doc = XDocument.Load(url);
var tournaments = doc.Root
                     .Elements("category")
                     .Where(x => (string) x.Attribute("name") == "Tournament")
                     .Single(); // Is there only one matching catgeory?

var matches = tournaments
    .Elements("match")
    .Select(m => new
            {
               LocalTeam = (string) m.Element("localteam").Attribute("name"),
               VisitorTeam = (string) m.Element("localteam").Attribute("name"),
               Events = m.Elements("Events")
                         .Select(e => new
                                 {
                                     Player = (string) e.Attribute("player"),
                                     Type = (string) e.Attribute("type"),
                                     // etc
                                 })
                         .ToList();
            });

如何显示由您决定的内容。您可能希望为事件,匹配等创建自己的“普通”类型,而不是使用上面的匿名类型。

LINQ to XML是迄今为止使用XML的最简单方法。