アイテムの分岐にアクセスする
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
再帰的手法とSitecore.Data.Items.Item.Childrenプロパティを用いて、ブランチ内のすべてのアイテムにアクセスできます。例えば、マスターデータベースの /Sitecore/Content/Homeアイテムとその子孫を処理する場合:
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master"); Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home"); ProcessRecursively(home);
...
private void ProcessRecursively(Sitecore.Data.Items.Item item) { foreach(Sitecore.Data.Items.Item child in item.Children) { // Process child item ProcessRecursively(child); } }
!警告再帰メソッドが引数を自分自身に渡すと、そのメソッドは無限ループを実装します。
分岐内の根項目を処理するのを避けるために、ループ内の処理ロジックを子を反復する再帰メソッドに移し、その論理では再帰メソッドに渡された項目の代わりに子項目を処理します。例えば、Masterデータベース内の*/Sitecore/Content/Home*項目の子孫のみを処理する場合:
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master"); Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home"); ProcessRecursively(home);
...
private void ProcessRecursively(Sitecore.Data.Items.Item item) { foreach(Sitecore.Data.Items.Item child in item.Children) { // Process child item ProcessRecursively(child); } }
!注Sitecoreクエリを使って、子孫軸または子孫軸のいずれかを使ってブランチ全体にアクセスすることもできます。