コンテンツの読み取り
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 開始タグ上。 |
Attribute |
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" を返します。