XmlNodeReader.ReadString メソッド


要素ノードまたはテキスト ノードの内容を文字列として読み取ります。Reads the contents of an element or text node as a string.

 override System::String ^ ReadString();
public override string ReadString ();
override this.ReadString : unit -> string
Public Overrides Function ReadString () As String



要素ノードまたはテキストのようなノード (CDATA、Text ノード、など) の内容。The contents of the element or text-like node (This can include CDATA, Text nodes, and so on). 要素ノードまたはテキスト ノード以外にリーダーが配置されている場合、または返す対象となるテキスト コンテンツが現在のコンテキスト内にこれ以上ない場合は、これが空の文字列になる場合があります。This can be an empty string if the reader is positioned on something other than an element or text node, or if there is no more text content to return in the current context.

Note: テキスト ノードは、要素テキスト ノードまたは属性テキスト ノードのいずれかが可能です。Note: The text node can be either an element or an attribute text node.

次の例では、各要素のテキストの内容を表示します。The following example displays the text content of each of the elements.

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
   XmlNodeReader^ reader = nullptr;
      //Create and load the XML document.
      XmlDocument^ doc = gcnew XmlDocument;
      doc->LoadXml( "<book>"
      "<title>Pride And Prejudice</title>"
      "</book>" );
      //Load the XmlNodeReader 
      reader = gcnew XmlNodeReader( doc );
      //Parse the XML and display the text content of each of the elements.
      while ( reader->Read() )
         if ( reader->IsStartElement() )
            if ( reader->IsEmptyElement )
                        Console::WriteLine( "<{0}/>", reader->Name );
               Console::Write( "<{0}> ", reader->Name );
               reader->Read(); //Read the start tag.
               if ( reader->IsStartElement() )
               //Handle nested elements.
               Console::Write( "\r\n<{0}>", reader->Name );
               Console::WriteLine( reader->ReadString() ); //Read the text content of the element.
      if ( reader != nullptr )


using System;
using System.IO;
using System.Xml;

public class Sample
  public static void Main()
    XmlNodeReader reader = null;

       //Create and load the XML document.
       XmlDocument doc = new XmlDocument();
       doc.LoadXml("<book>" +
                   "<title>Pride And Prejudice</title>" +
                   "<price>19.95</price>" +
                   "<misc/>" +

       //Load the XmlNodeReader
       reader = new XmlNodeReader(doc);

       //Parse the XML and display the text content of each of the elements.
       while (reader.Read()){
         if (reader.IsStartElement()){
           if (reader.IsEmptyElement)
                        Console.WriteLine("<{0}/>", reader.Name);
               Console.Write("<{0}> ", reader.Name);
               reader.Read(); //Read the start tag.
               if (reader.IsStartElement())  //Handle nested elements.
                   Console.Write("\r\n<{0}>", reader.Name);
               Console.WriteLine(reader.ReadString());  //Read the text content of the element.

        if (reader != null)
} // End class
Option Strict
Option Explicit

Imports System.IO
Imports System.Xml

Public Class Sample
    Public Shared Sub Main()
        Dim reader As XmlNodeReader = Nothing
            'Create and load the XML document.
            Dim doc As New XmlDocument()
            doc.LoadXml("<book>" & _
                        "<title>Pride And Prejudice</title>" & _
                        "<price>19.95</price>" & _
                        "<misc/>" & _
            'Load the XmlNodeReader 
            reader = New XmlNodeReader(doc)
            'Parse the XML and display the text content of each of the elements.
            While reader.Read()
                If reader.IsStartElement() Then
                    If reader.IsEmptyElement Then
                        Console.WriteLine("<{0}/>", reader.Name)
                        Console.Write("<{0}> ", reader.Name)
                        reader.Read() 'Read the start tag.
                        If (reader.IsStartElement())  'Handle nested elements.
                          Console.Write("<{0}>", reader.Name)
                        End If
                        Console.WriteLine(reader.ReadString()) 'Read the text content of the element.
                    End If
                End If
            End While
            If Not (reader Is Nothing) Then
            End If
        End Try
    End Sub
End Class



.NET Framework 2.0 では、 XmlReader クラスとメソッドを使用してインスタンスを作成することをお勧めし XmlReaderSettings Create ます。In the .NET Framework 2.0, the recommended practice is to create XmlReader instances using the XmlReaderSettings class and the Create method. これにより、.NET Framework で導入されたすべての新機能を最大限に活用することができます。This allows you to take full advantage of all the new features introduced in the .NET Framework. 詳細については、リファレンスページの「解説」を参照してください XmlReaderFor more information, see the Remarks section in the XmlReader reference page.

要素に配置されている場合、は、 ReadString すべてのテキスト、有意の空白、空白、および CData セクションのノード型を連結し、要素の内容として連結されたデータを返します。If positioned on an element, ReadString concatenates all text, significant white space, white space, and CData section node types together and returns the concatenated data as the element content. マークアップが検出されると停止します。It stops when any markup is encountered. これは混合コンテンツ モデル内で、または要素の終了タグが読み込まれると発生します。This could occur in a mixed content model, or when an element end tag is read.

テキストのようなノードに配置されている場合、は、 ReadString テキストノードから要素終了タグまでの同じ連結を実行します。If positioned on a text-like node, ReadString performs the same concatenation from the text node to the element end tag. リーダーが属性のテキスト ノード上にある場合、ReadString は、あたかもリーダーが要素の開始タグ上にあるのと同様に機能します。If the reader is positioned on an attribute text node, ReadString has the same functionality as if the reader were position on the element start tag. 連結されたすべての要素テキスト ノードが返されます。It returns all the concatenated element text nodes.