私はXMLを持っており、日付に基づいて要素を選択したいと考えています。したがって、日付の子孫は今日よりも少ない日付のリストを持っています。ノードに基づいて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>
あなたのクエリは既に、きっと(あなたが 'Date'に' ExpiryDate'を修正する場合)ことをしてみ?ただそれらを削除しないでください。 –
@CharlesMager - 私の悪い、それはタイプミスでした。私は削除せずにそれを表示しようとしましたが、 'q.ToList()'でそれを見ることはできませんでした。 – mikemind
削除に関しては、単にq.Remove()を実行することができます。また、 'StringReader'をロードするのではなく、' XDocument.Parse'オーバーロードを使用してください。 –