Удалить элементы из XML с определенной датой через LINQ для XML в C # - PullRequest
0 голосов
/ 20 января 2011

У меня есть XML-файл, который выглядит следующим образом ..

<RecentInformation>
  <User Id="99">
    <Customers>
      <Customer>
        <CustomerId>7</CustomerId>
        <Date>1/20/2010</Date>
      </Customer>
      <Customer>
        <CustomerId>67</CustomerId>
        <Date>1/20/2010</Date>
      </Customer>
    </Customers>
    <Suppliers>
      <Supplier>
        <SupplierId>11619</SupplierId>
        <Date>1/20/2010</Date>
      </Supplier>
      <Supplier>
        <SupplierId>16274</SupplierId>
        <Date>1/20/2011</Date>
      </Supplier>
    </Suppliers>
    <Enquiries>
      <Enquiry>
        <EnquiryId>136202</EnquiryId>
        <Date>1/20/2010</Date>
      </Enquiry>
      <Enquiry>
        <EnquiryId>134507</EnquiryId>
        <Date>1/20/2011</Date>
      </Enquiry>
    </Enquiries>
    <Quotes>
      <Quote>
        <QuoteId>34008</QuoteId>
        <Date>1/20/2010</Date>
      </Quote>
      <Quote>
        <QuoteId>37356</QuoteId>
        <Date>1/20/2011</Date>
      </Quote>
    </Quotes>
    <Bookings>
      <Booking>
        <BookingId>3070</BookingId>
        <Date>1/20/2011</Date>
      </Booking>
      <Booking>
        <BookingId>3251</BookingId>
        <Date>1/20/2011</Date>
      </Booking>
    </Bookings>
  </User>
</RecentInformation>

Я хочу удалить все узлы, которые должны быть меньше, чем, скажем, 15 дней.

Я использую этот код, но он не работает для меня ..

xdoc.Descendants("User").Descendants().Descendants().Where(x => DateTime.Parse(x.Element("Date").Value) < date)
                            .Remove();

любая идея ??

1 Ответ

1 голос
/ 20 января 2011

Это ваша линия исправлена ​​

xdoc.Descendants("Date").Where(x => DateTime.Parse(x.Value) < date).Select(x=>x.Parent).Remove();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...