---
title: "アクセスフィールド値"
slug: "access-field-values"
abstract: "APIを使ってフィールド値にアクセスする方法。"
---
# アクセスフィールド値

このセクションで説明するAPIを使ってフィールド値の読み書きが可能です。メディアアイテムのバイナリデータを保存するためのAttachment Systemフィールドタイプを除きます。Sitecoreすべてのフィールド値をテキストとして保存します。任意のフィールドに単純なテキスト値としてアクセスすることも、Sitecore.Data.Fields名前空間内の特殊クラスを利用できます。

一部のフィールドタイプは単純なテキスト値で構成されています。チェックボックスフィールドは選択時に1文字(「1」)を格納します。リッチテキストエディタ(RTE)のフィールドにはXHTMLが含まれています。多数のフィールドタイプは単一のアイテムのIDや複数のIDをパイプ文字(「|」)で区切っています。他のフィールドタイプはXMLや独自の形式のデータが含まれています。

> !ヒント任意のフィールドタイプの文字列形式を決定するには、コンテンツエディターを開き、そのフィールドを含むアイテムを選択し、生のフィールド値を表示します。

Sitecore.Data.Items.Itemクラスが公開したコレクションを使って、任意のフィールドの文字列値にアクセスできます。例えば、*Master*データベースの*/Sitecore/Content/Home*項目のTitleフィールドの値にアクセスするには:

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

string title = home"title";

> !重要指定されたフィールドが存在しない場合、Sitecore.Data.Items.Itemで公開されたコレクションは空文字列を返しますが、Nullは返されません。

Sitecore.Data.Items.Itemクラスで公開されたコレクションを使って、任意のフィールドの値を更新できます。例えば、*Master*データベースの/*Sitecore/Content/Home*項目のTitleフィールドの値を更新するには:

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

home.Editing.BeginEdit();

home"title" = "//TODO: replace with appropriate value";

home.Editing.EndEdit();

Sitecore.Data.Items.Itemクラスで公開されたコレクションを使って、その値を空文字列に設定することで任意のフィールドを消去できます。例えば、*Master*データベースの*/Sitecore/Content/Home*項目の*Title*フィールドを消すには:

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

home.Editing.BeginEdit();

home"title" = String.Empty;

home.Editing.EndEdit();

> !重要フィールドの値をクリアしても、そのフィールドは標準値にリセットされません。フィールドを標準値にリセットする手順については、「 *フィールドを標準値にリセット*する方法」のセクションを参照してください。フィールド値をNullに設定することはできません。

あるいは、Sitecore.Data.Items.Item.Fieldsプロパティを使ってSitecore.Data.Fields.Fieldクラスのインスタンスとして任意のフィールドにアクセスすることもできます。例えば、*Master*データベースの*/Sitecore/Content/Home*項目の*Title*フィールドにアクセスするには:

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.Field titleField = home.Fields"title";

if(titleField!=null)

{

string title = titleField.Value;

}

> !重要フィールドの名前(item.FieldsSystem.String)でアクセスし、アイテムに存在しない場合、Sitecore.Data.Items.Item.FieldsコレクションはNullを返します。
> 
> ID(item.FieldsSitecore.Data.ID)でフィールドにアクセスしてアイテムに存在しない場合、Sitecore.Data.Items.Item.Fieldsコレクションはアイテムテンプレートに属さない「新しい」 Sitecore.Data.Fields.Fieldオブジェクトを返します。

Sitecore.Data.Fields.Field.Valueプロパティを使ってフィールドの値を更新できます。例えば、*Master*データベースの*/Sitecore/Content/Home*項目の*Title*フィールドの値を更新するには:

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.Field titleField = home.Fields"title";

if(titleField!=null)

{
 home.Editing.BeginEdit();
 titleField.Value = "New Value";
 home.Editing.EndEdit();
}

Sitecore必要な場合にのみデータを取得します。Sitecoreがアイテムのすべてのフィールド値を取得できるようにするために、Sitecore.Data.Items.Item.ReadAllメソッドを呼び出します。例えば、コンテキストアイテムのフィールドを反復する際:

Sitecore.Data.Items.Item item = Sitecore.Context.Item;

item.Fields.ReadAll();

foreach (Sitecore.Data.Fields.Field field in item.Fields)
{
 // Process field
}