我有一个看起来像这样的XML
<TripList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlopen.rejseplanen.dk/xml/rest/hafasRestTrip.xsd">
<Trip>
<Leg name="til fods" type="WALK">...</Leg>
<Leg name="Bus 61" type="BUS">...</Leg>
<Leg name="til fods" type="WALK">...</Leg>
<Leg name="Bus 52" type="BUS">...</Leg>
<Leg name="til fods" type="WALK">...</Leg>
</Trip>
<Trip>
<Leg name="til fods" type="WALK">...</Leg>
<Leg name="Bus 61" type="BUS">...</Leg>
<Leg name="til fods" type="WALK">...</Leg>
<Leg name="Bus 52" type="BUS">...</Leg>
<Leg name="til fods" type="WALK">...</Leg>
</Trip>
<Trip>
<Leg name="til fods" type="WALK">...</Leg>
<Leg name="Bus 191" type="BUS">...</Leg>
<Leg name="til fods" type="WALK">...</Leg>
<Leg name="Bus 152" type="BUS">...</Leg>
<Leg name="til fods" type="WALK">...</Leg>
</Trip>
<Trip>
<Leg name="til fods" type="WALK">...</Leg>
<Leg name="Bus 31" type="TB">...</Leg>
<Leg name="til fods" type="WALK">...</Leg>
</Trip>
</TripList>
我需要选择&#34;第三&#34;在Windows Phone中使用XDocument的Trip元素,我该怎么做?
我尝过像
这样的东西foreach (var Stykke in xdoc.Root.Elements("Trip")[2].Elements("Leg"))
{
}
如您所见,想从第三个获得所有Leg元素。
这可能是一个非常愚蠢的问题,但我无法在其他任何地方找到适当的答案。
答案 0 :(得分:5)
ElementAt
可能适合您。
您正在寻找的是
foreach (var Stykke in xdoc.Root.Elements("Trip").ElementAt(2).Elements("Leg"))
{
}
或者如果您愿意,也可以使用ToList
然后使用索引器获取结果。:
foreach (var Stykke in xdoc.Root.Elements("Trip").ToList()[2].Elements("Leg"))
{
}
我不确定WP7是否允许您使用这些方法。如果没有,请评论并告诉我。
答案 1 :(得分:0)
怎么样:
xdoc.Descendants("Trip")[2].Descendants("Leg")
答案 2 :(得分:0)
使用LINQ to XML,您将获得类似
的查询XDocument X = XDocument.Load(Path);
var ThirdTripElement = X.Element("TripList")
.Elements("Trip")
.ElementAt(2)
.Elements("Leg")
.Select(E => new { Name = E.Attribute("name").Value,
Type = E.Attribute("type").Value });