如何使用XElement在C#中获取XML的第二个子元素的值

3

我想获取第二个价格元素的值。我们无法直接获取最后一个或第一个,但我不知道如何直接获取第二个元素。

这是XML……(我只放了需要的部分。我的XML有效)

<Departure>
    <Date>2016-09-24T00:00:00.0000000</Date>
    <Pricing>
      <Price>
        <Type>ADT</Type>
        <Value>299.00</Value>
        <Qty>20</Qty>
      </Price>
      <Price>
        <Type>CHD</Type>
        <Value>230.00</Value>
        <Qty>5</Qty>
      </Price>
      <Price>
        <Type>INF</Type>
        <Value>150.00</Value>
        <Qty>5</Qty>
      </Price>
      <Price>
        <Type>FAM</Type>
        <Value>0.00</Value>
        <Qty>0</Qty>
      </Price>
      <Price>
        <Type>SEN</Type>
        <Value>299.00</Value>
        <Qty>20</Qty>
      </Price>
    </Pricing>
  </Departure>
  <Departure>

这是我如何使用Last()函数的方法

 numberofDays = itm.Elements("Itinerary").Elements("ItineraryItem").Elements("EndDay").Last().Value,

我想获取第二个价值元素的值。(类型值为“CHD”)

2个回答

3

要获取位置为N的元素,您可以跳过N-1个元素,并使用FirstOrDefault

var secondPrice = item.GetElements("Price").Skip(1).FirstOrDefault();

1

虽然不是最新的处理XML的方法,但这个方法仍然有效。

    XmlDocument doc = new XmlDocument();
    doc.LoadXml(XML);

    XmlNode secondPrice = doc.GetElementsByTagName("Price")[1];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接