簡體   English   中英

XDocument后代的后代

[英]XDocument Descendants of Descendants

<Tickets>
<Extract_Date>2011-02-25 00:00:00</Extract_Date>
<Incidents>
  <Ticket xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Ticket_Number>INC000000578057</Ticket_Number>
    <Status>
      <Value>Cancelled</Value>
    <Reason>Cancelled by user</Reason>
  </Status>
</Ticket>

我可以通過以下方式獲得ticket_number:

var q1 = from c in xmlDoc.Descendants("Ticket")
                   select new
                   {
                       Ticket_Number = (string)c.Element("Ticket_Number"),
                   };

還如何獲得理性?

這應該工作:

var q1 = from c in xmlDoc.Descendants("Ticket")
    select new
    {
        Ticket_Number = (string)c.Element("Ticket_Number"),
        Reason = (string)c.Element("Status").Element("Reason")
    };
//if you have exactly one <Ticket> with exactly one <Reason>
string strReason = xmlDoc.Descendants("Ticket").Single()
    .Descendants("Reason").Single().Value;

//if you have one or multiple <Ticket> elements, 
//each with exactly one <Reason> element
string[] astrReasons = xmlDoc.Descendants("Ticket")
    .Select(ticket => ticket.Descendants("Reason").Single().Value).ToArray();

//if you have one or multiple <Ticket> elements, 
//each with one or multiple <Reason> elements
string[] astrReasons2 = xmlDoc.Descendants("Ticket")
    .SelectMany(ticket => ticket.Descendants("Reason")
    .Select(reason => reason.Value)).ToArray();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM