属性の書き込み

更新 : November 2007

WriteAttributeStringWriteStartAttribute、および WriteAttributes は、特に属性の作成のために用意されたメソッドです。これらのメソッドにより、要素の属性や XML 宣言ノードの属性を書き込むことができます。属性の書き込みメソッドは、要素に名前空間宣言を作成するためにも使用できます。名前空間の詳細については、「XmlWriter における名前空間の処理」を参照してください。

WriteAttributeString

WriteAttributeString メソッドは、属性を書き込むための最も簡単な方法です。このメソッドは、文字列値も含め、属性ノード全体を書き込むために使用されます。次のコードは、supplierID='A23-1' という XML 文字列を書き出します。

writer.WriteAttributeString("supplierID", "A23-1")
writer.WriteAttributeString("supplierID", "A23-1");

WriteStartAttribute

WriteStartAttribute メソッドは、WriteAttributeString メソッドのより進んだバージョンです。このメソッドでは、複数のメソッド呼び出しを使用して属性値を書くことができます。たとえば、WriteValue を使用して型指定された値を書くことができます。

属性は WriteEndAttribute メソッドを呼ぶことで閉じることができます。

次のコードで hireDate は、社員の入社年月日を格納する DateTime オブジェクトです。このコードは、半年後の人事評価日の計算値を格納する review-date 属性を書き込みます。

writer.WriteStartAttribute("review-date")
writer.WriteValue(hireDate.AddMonths(6))
writer.WriteEndAttribute()
writer.WriteStartAttribute("review-date");
writer.WriteValue(hireDate.AddMonths(6));
writer.WriteEndAttribute();

WriteAttributes

WriteAttributes メソッドは、指定された XmlReader オブジェクトの現在の位置で見つかるすべての属性をコピーします。WriteAttributes の動作は、リーダーが現在位置するノードの型により異なります。

各ノード型について、WriteAttributes を呼び出したときの結果を次の表に示します。下の表に一覧されていないノード型の上にリーダーが位置していた場合、WriteAttributes は何も行いません。

ノード型

WriteAttributes の動作

属性

現在の属性を書き込み、次に終了タグが来るまで残りの属性を書き込みます。

要素

要素が持つすべての属性を書き込みます。

XML 宣言

宣言内のすべての属性を書き込みます。

たとえば、次のコードで、ライタは現在のリーダーの位置に見つかるすべての属性をコピーします。

writer.WriteStartElement("root")
writer.WriteAttributes(reader, True)
writer.WriteEndElement()
writer.WriteStartElement("root");
writer.WriteAttributes(reader, true);
writer.WriteEndElement();

リーダーが 3 つの属性を持つ要素の上に位置していた場合、次の XML 文字列が書き込まれます。

<root genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0" />

参照

その他の技術情報

XmlWriter による XML の書き方