??各ノードの型は、XmlNodeType 列挙の 1 つです。図 3 に示すコードでは、Element と EndElement の 2 つの型のみを使用します。出力ソース コードは、元のドキュメント構造を再カスタマイズし、XML 要素の属性とノードの内容を破棄または無視し、要素のノード名のみを出力します。次の XML フラグメントを適用するとします。
??
??
??MSDN Magazine
??
??
??</mag>
??</mags>
??上記プログラムを使用した出力結果は次のとおりです。
??<mags>
??<mag>
? ?< /mag>
??<mag>
??</mag>
??</mags>
??子ノードのインデント量はブラウザの深さ属性(Depth属性)に応じて設定されます、Depth 属性は現在のノードのネスト レベルを表す整数を返します。すべてのテキストは StringWriter オブジェクト (StrigBuilder クラスの非常に便利なストリームベースのラッパー) に配置されます。
??前に述べたように、ブラウザは Read メソッドを通じて属性ノードに自動的にアクセスしません。現在の要素の属性ノード コレクションにアクセスするには、MoveToNextAttribute メソッドの戻り値によって制御される単純なループを使用してコレクションを横断する必要があります。次のコードは、現在のノードのすべての属性にアクセスし、属性の名前とその値をカンマで区切られた文字列に結合するために使用されます:
??if (reader.HasAttributes)
??while(reader.MoveToNextAttribute())
??buf = Reader.Name '='' Reader.Value '',';
??reader.MoveToElement();
??属性セットの処理が完了したら、MoveToElement メソッドを呼び出してポインターを返します。属性が属する要素ノード。正確に言うと、属性セットを処理するときにポインターが要素ノードから移動することはないため、MoveToElement メソッドは実際にはポインターを移動しません。 MoveToElement メソッドは内部メンバーを指すだけで、そのメンバーの値を順番に取得します。たとえば、Name 属性を使用して属性の属性名を取得し、MoveToElement メソッドを呼び出して、その属性が属する要素ノードにポインターを移動します。ただし、他のノードの処理を続行する必要がない場合は、MoveToElement メソッドを呼び出す必要はありません。
上記は、.NET Framework で XML データを簡単に処理する内容 (1 ~ 3) です。その他の関連コンテンツについては、PHP 中国語 Web サイト (m.sbmmt.com) に注目してください。