コンテンツの読み取り
更新 : November 2007
XmlReader クラスにはコンテンツを読むために使用できるメンバが含まれています。
メモ : |
---|
このトピックで説明するメンバはコンテンツを文字列値として返します。型指定してコンテンツを読む場合は、「型指定されたデータの読み取り」を参照してください。 |
Value プロパティ
Value プロパティを使用すると現在のノードのテキスト内容を取得できます。返される値は、現在のノードのノード型に依存します。各ノード型に応じて返される内容を次の表に示します。
ノード型 |
値 |
---|---|
Attribute |
属性の値。 |
CDATA |
CDATA セクションの内容。 |
Comment |
コメントのコンテンツ。 |
DocumentType |
内部サブセット。 |
ProcessingInstruction |
ターゲットを除く全内容。 |
SignificantWhitespace |
混合コンテンツ モデル内のマークアップ間の空白。 |
Text |
テキスト ノードの内容。 |
Whitespace |
マークアップ間の空白。 |
XmlDeclaration |
宣言の内容。 |
その他のすべてのノード型 |
空の文字列。 |
ReadString メソッド
ReadString メソッドは 1 つの要素またはテキスト ノードの内容を文字列として返します。
XmlReader が要素上にある場合、ReadString はすべてのテキスト、有意の空白、空白、および CDATA セクションのノードを一緒に連結し、連結されたデータを要素コンテンツとして返します。リーダーはマークアップを見つけると停止します。これは混合コンテンツ モデル内で、または要素の終了タグが読み込まれると発生します。
XmlReader がテキスト ノード上にある場合、ReadString は、テキスト、有意の空白、空白、および CDATA セクションのノードについて同じ連結操作を行います。リーダーは、これらの型以外の最初のノード上で停止します。リーダーが属性のテキスト ノード上にある場合、ReadString は、あたかもリーダーが要素の開始タグ上にあるのと同様に機能します。連結されたすべての要素テキスト ノードが返されます。
メモ : |
---|
ReadString メソッドは処理命令とコメント上で停止します。それらを無視することはありません。 |
ReadInnerXml メソッド
ReadInnerXml メソッドは、マークアップも含め、現在のノードの内容をすべて返します。現在のノード (開始タグ) と対応する終了ノード (終了タグ) は返されません。たとえば、XML 文字列 <node>this<child id="123"/></node>, ReadInnerXml では、this<child id="123"/> が返されます。
要素と属性の取り扱いについて説明を次の表に示します。
ノード型 |
最初の 位置 |
XML フラグメント |
戻り 値 |
移動後の 位置 |
---|---|---|---|---|
Element |
item1 開始タグ上。 |
<item1>text1</item1><item2>text2</item2> |
text1 |
item2 開始タグ上。 |
属性 |
attr1 属性ノード上。 |
<item attr1="val1" attr2="val2">text</item> |
val1 |
attr1 属性ノード上に留まる。 |
リーダーがリーフ ノード上にある場合、ReadInnerXml の呼び出しは Read と同じです。
ReadOuterXml メソッド
ReadOuterXml メソッドは、現在のノードとその子のマークアップを含め、すべての XML コンテンツを返します。その動作は、このメソッドが開始タグと終了タグも返すことを除いて、ReadInnerXml と似ています。
上の表の例で、リーダーが item1 の開始タグ上にあるとすると、ReadOuterXml は <item1>text1</item1> を返します。リーダーが attr1 属性ノード上にあるとすると、ReadOuterXml は attr1="val1" を返します。