以下のようなXMLからidとdateを使って処理をするのですが、後段にもitemがあるため、以下のようにnullチェックを行っています。もう少し簡潔な記述にできないでしょうか。 <root> <list> <item> <id>2020022066074</id> <date>2020-02-20</date> <info> <item>1007</item> </info> </item> </list> </root>
var elem = xml.Descendants("item") .Where(i => i.Element("id") != null && i.Element("date") != null) .Where("dateが今日かどうか判定") .Select("idを取り出す");
XPATH を使い、item の子である id を発見してその親を返せばいいのではないかと思います。
https://docs.microsoft.com/ja-jp/dotnet/api/system.xml.xpath.extensions.xpathselectelements?view=netframework-4.8
ついついLINQなのでXPath式を使わなかったのですが、これで必要十分でした。
どうもありがとうございました。
var elem = xml.XPathSelectElements("//item[id]")
.Where("dateが今日かどうか判定")
.Select("idを取り出す");
自己解決してください。
回答1件
あなたの回答
tips
プレビュー