コアサービスを使用して特定のコンポーネントが存在する場合は、即時フォルダ名を取得します。


1

メインフォルダ(mf)の名前は030 Mainです。このフォルダには、以下のようなフォルダ(f)、サブフォルダ(sf)およびコンポーネント(c)があります。 メインフォルダ、f-フォルダ、c-コンポーネント。 単純に、もしcが存在すれば、直ちにfname(すなわちフォルダ名)を得るべきです。様例えば

100アフリカ(F)下記 - > 110ソマリア(SF) - > 010プレイ(C)、020概要(C)、030ビーチ(C) 120インド(F ) - > 110 Play(c)、020 Station(c)、030 Fishing(c) 120インド(f) - > 110ケララ(sf) - > 010 Play(c) )、020ステーション(c)、030ビーチ(c)、040飛行機(c)

030メイン内にもいくつかのコンポーネントがあります。

今、ビーチのコンポーネントからのみ一部のコンテンツを取得したいと考えています。それと並んで私は即時のサブフォルダname.i.eを望んでいます(もしビーチがあるなら、ソマリア、ケララのようなそれぞれの都市名が必要です)。私は、最初にコンポーネントフィルタを使用し、その後、 "030ビーチ"を確認し、コンテンツを取得するすべてのコンポーネントをフェッチした後、試してみました。 "030ビーチ"コンポーネントを持つフォルダ名が必要です。

OrganizationalItemItemsFilterData filter = new OrganizationalItemItemsFilterData(); 
      filter.ItemTypes = new[] { ItemType.Component }; 
      filter.Recursive = true; 

foreach (var id in client.GetListXml(folder, filter).Elements().ToList()) 
       { 
        string compTitle=id.Attribute("Title").Value; 
        string compId = id.Attribute("ID").Value; 

        StringBuilder sb = new StringBuilder(); 
        if (compTitle.Equals("030 Beach")) 
        { 

         ComponentData component1 = client.Read(compId, new ReadOptions()) as ComponentData; 
         var componentContent = component1.Content; 

}

+1

あなたの質問で私は正確に問題を見ることができませんfaci ng。質問を編集して、直面している問題を特定できますか? 30 12月. 152015-12-30 06:35:13

  0

リゾートの施設別にリゾートを分類しようとしているようです。これは、キーワードを使用する方が簡単かもしれません。 30 12月. 152015-12-30 09:11:37

4

あなたがComponentDataオブジェクトを取得したら、あなたはあなたがこれを追加することで、フォルダ名を取得することができます

部品が配置されているリポジトリオブジェクト(Folder)にアクセスするプロパティLocationInfoにアクセスすることができますあなたにコードしてください:

string componentsOrganizationalItem = component1.LocationInfo.OrganizationalItem.Title;