図 7 XML ライターの状態
状態
説明
属性
属性が書き込まれると、ライターはこの状態に入ります
Closed
Close メソッドが呼び出され、ライターは書き込み操作に使用できなくなります
内容
ライターは、ノードのコンテンツが書き込まれているときにこの状態に入ります
要素
ライターは、要素の開始タグが書き込まれているときにこの状態に入ります
プロローグ
ライターは、整形式の XML 1.0 ドキュメントのプロローグを書いています
開始
ライターは初期状態にあり、発行される書き込み呼び出しを待機しています
??ライターは出力テキストを内部バッファに保存します。通常、バッファはフラッシュまたはクリアされ、Writer が閉じられる前に XML テキストが書き込まれる必要があります。いつでも、Flush メソッドを呼び出してバッファをクリアし、現在のコンテンツをストリームに書き込み (BaseStream プロパティを通じて公開)、占有メモリの一部を解放して、継続的に制御できます。 。ドキュメントのコンテンツの一部が書き込まれていますが、Writer が閉じられるまでは他のプログラムはドキュメントを処理できないことに注意してください。
??属性ノードを記述するには 2 つの方法を使用できます。 1 つ目の方法は、WriteStartAtribute メソッドを使用して新しい属性ノードを作成し、ライターのステータスを更新することです。次に、WriteString メソッドを使用してプロパティ値を設定します。書き込み後、WriteEndElement メソッドを使用してノードを終了します。さらに、WriteAttributeString メソッドを使用して新しい属性ノードを作成することもできます。writerr のステータスが Element の場合、WriterAttributeString が動作し始め、別の属性が作成されます。同様に、WriteStartElement メソッドはノードの開始タグ (<) を書き込み、ノードの属性とテキスト コンテンツを自由に設定できます。要素ノードの終了タグはすべて「/ >」です。終了タグを記述したい場合は、WriteFullEndElement メソッドを使用して記述できます。
??不等記号 (<) などの機密性の高いマークアップ文字を含むメソッドを作成するために渡されるテキストは避ける必要があります。 WriteRaw メソッドを使用してストリームに書き込まれた文字列は解析されません。これを使用して、特別な文字列を XML ドキュメントに書き込むことができます。次の 2 行のコードでは、最初の行は「<」を出力し、2 行目は「<」を出力します。
??ストリームの読み取りと書き込み
??興味深いことに、リーダー (ブラウザ) クラスとライター クラスは、Base64 および BinHex エンコーディングに基づいてデータ ストリームを読み取りおよび書き込みするためのメソッドを提供します。 WriteBase64 メソッドと WriteBinHex メソッドの機能は、他の書き込みメソッドの機能とは少し異なります。これら 2 つのメソッドはどちらもストリームベースであり、文字列ではなくバイト配列のように機能します。次のコードは、まず文字列をバイト配列に変換し、それを Base64 でエンコードされたストリームに書き込みます。 Encoding クラスの GetBytes 静的メソッドによって変換タスクが完了します:
writer.WriteBase64(
Encoding.Unicode.GetBytes(buf),
0, buf.Length*2);
上記は.NET Framework XML データを簡単に処理する (4-2) 関連コンテンツについては、PHP 中国語 Web サイト (m.sbmmt.com) に注目してください。