У меня есть XML, и я хочу выбрать элемент на основе даты. Таким образом, у потомков Date есть список дат меньше, чем сегодня.выберите xml потомков на основе узла
XML имеет значение, как этот
<Dates>
<Department>
<ID>Food</ID>
<Date>25-11-2016</Date>
</Department>
<Department>
<ID>Sport</ID>
<Date>26-10-2016</Date>
</Department>
</Dates>
Теперь мне нужно выбрать только те элементы, где соответствующая дата меньше, чем сегодня, и ниже запрос подберут даты и удаления элементов из XML.
XDocument newXML = XDocument.Load(new StringReader(xmlValues));
var q = from node in newXML.Descendants("Date")
let attr = node.Value where attr != null && DateTime.ParseExact
(attr, "dd-MM-yyyy", CultureInfo.InvariantCulture) < DateTime.Today
select node.Parent;
q.ToList().ForEach(x => x.Remove());
Теперь, как я могу выбрать только те предметы, которые имеют дату меньше, чем сегодня?
<Department>
<ID>Sport</ID>
<Date>26-10-2016</Date>
</Department>
Ваш запрос делает это уже, конечно, (если вы исправить '' ExpiryDate' к date')? Просто не удаляйте их. –
@CharlesMager - Плохо, это была опечатка. Я попытался просмотреть его, не удаляя, но не смог его увидеть, хотя в 'q.ToList()' – mikemind
Как в сторону при удалении, вы можете просто выполнить 'q.Remove()'. И используйте перегрузку 'XDocument.Parse', а не загрузку' StringReader'. –