LINQ テクノロジを使用して xml ファイルを検索したいのですが、いくつか問題があります。属性値といくつかの検索条件ですべての子を検索したい
私の XML (構造化データ) は次のようになります。
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<LanguageMenu>
<Menu language="English" name ="Menu" numOfMenus="1">
<MainItem ID="e_mnuMain1" name="File" level="0"></MainItem>
<MainItem ID="e_mnuMain2" name="Edit" level="0"></MainItem>
<MainItem ID="e_mnuMain3" name="Query" level="0"></MainItem>
<MainItem ID="e_mnuMain4" name="Traffic" numOfSubItem="4" level="0">
<SECOND name="Vendors" value="FIN3010" level="1" father="3"></SECOND>
<SECOND name="Buyers" value="FIN3020" level="1" father="3" ></SECOND>
<SECOND name="General ledger" value="FIN3030" level="1" father="3"></SECOND>
<SECOND name="Accounts" value="FIN3040" level="1" father="3">
<THIRD name="Home Accounts" value="FIN3010" level="2" father="5" grantfather="3"/>
<THIRD name="Foreign accounts" value="FIN3050" level="2" father="5" grantfather="3"/>
</SECOND>
</MainItem>
</Menu>
</LanguageMenu>
LINQ を使用して、値 FIN3010 を持つ Element MainItem で始まるすべての子を見つけたいと考えています。XML に基づいて、Vendors と Home Accounts を返す必要があります。
その子の親も取得したいので、達成したい出力は次のようになります。
Traffic - Vendors
Traffic - Accounts - Home Accounts
私はこのコードにこだわっています:
XElement xelement = XElement.Load("../../xmlFile");
var x = from a in xelement.Descendants("SECONDS")
where a.Attribute("value") != null
&& (string)a.Attribute("value").Value.ToUpper() == txtSifra.Text.ToUpper()
select a;
foreach (XElement xEle in x)
{
//TODO
}