私のXMLファイルは、次のような構造で構成されています。
<root>
<Manager name="1">
<Manager name="2">
<Employee name="3">
</Manager>
<Manager name="abe">
</Manager>
<Employee name="4">
<Employee name="5">
</Manager>
</root>
XMLはツリービューをフィードし、ユーザーがツリービューのどこをクリックしたかに応じて、クリックされた従業員を取得するか(使用できるので簡単ですtreeview.SelectedNode)、そうでない場合は、クリックがルートノードにあった場合、またはマネージャーノード、マネージャーの下の最初の従業員。
つまり
- をクリックすると、
rootの詳細が表示されますEmployee 4(最初の従業員レコードはすぐ下Manager 1にありますroot)。 - をクリックすると、
Manager 1も表示されEmployee 4ます。 - クリックすると
Manager 2が表示されEmployee 3ます。 - クリック
Manager Abeしても結果は得られません。 Employee 5その従業員を直接クリックした場合にのみ表示されます。
Manager 1彼の下に直接の従業員がいない可能性もあります。その場合、ルートをクリックすると、従業員がいる最初のマネージャーの下に最初の従業員が表示されます。したがって、仮定Employee 4し、Employee 5下になかった場合Manager 1、ルートをクリックすると。が生成されEmployee 3ます。
、、、のいくつかの異なるバリアントを使用してみElementましたがElements、少し行き詰まっています。DescendantDescendants
個々の組み合わせ(つまり、、および)ごとにシナリオを作成できると思いますがrootClicked、managerClickedこれemployeeClickedは私が最初に行ったことですが、コード的に保守しやすいものを探しています。
root.Element( "Employee")を使用すると役立つことを期待していましたが、Could not find an implementation of the query pattern for source type 'System.Xml.Linq.XEelement'. 'select' not foundエラーが発生しました。
誰かが私の問題を解決するために必要なその小さなナッジを私に提供することができますか?