更新 : November 2007
WriteAttributeString、WriteStartAttribute、および 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" />