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

时间:2015-12-09 04:17:01

标签: c# xml xelement

我想获得第二个价格元素的价值。我们不能直接获得最后一个或第一个。但我不知道如何直接获得第二个元素。 这是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,

像这样我想获得第二个价格元素的价值。(Type valud是&#34; CHD&#34;)

2 个答案:

答案 0 :(得分:1)

要获取位置N的元素,您可以跳过N-1个元素,然后选择FirstOrDefault

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

答案 1 :(得分:1)

不是使用XML的最新方式,但这可以使用

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

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