XmlNodeReader.HasValue プロパティ


現在のノードが Value を持つことができるかどうかを示す値を取得します。Gets a value indicating whether the current node can have a Value.

 virtual property bool HasValue { bool get(); };
public override bool HasValue { get; }
member this.HasValue : bool
Public Overrides ReadOnly Property HasValue As Boolean



リーダーが現在配置されているノードが Value を持つことができる場合は true。それ以外の場合は falsetrue if the node on which the reader is currently positioned can have a Value; otherwise, false.

次の例では、値を持つことができるすべてのノードの値を表示します。The following example displays the value for every node which can have a value.

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
   XmlNodeReader^ reader = nullptr;
      // Create and load an XmlDocument.
      XmlDocument^ doc = gcnew XmlDocument;
      doc->LoadXml( "<?xml version='1.0' ?>"
      "<!DOCTYPE book [<!ENTITY h 'hardcover'>]>"
      "<title>Pride And Prejudice</title>"
      "</book>" );
      reader = gcnew XmlNodeReader( doc );
      // Parse the file and display each node.
      while ( reader->Read() )
         if ( reader->HasValue )
                  Console::WriteLine( "({0})  {1}={2}", reader->NodeType, reader->Name, reader->Value );
                  Console::WriteLine( "({0}) {1}", reader->NodeType, reader->Name );
      if ( reader != nullptr )


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

public class Sample {

  public static void Main() {

    XmlNodeReader reader = null;

    try {

        // Create and load an XmlDocument.
        XmlDocument doc = new XmlDocument();
        doc.LoadXml("<?xml version='1.0' ?>" +
                    "<!DOCTYPE book [<!ENTITY h 'hardcover'>]>" +
                    "<book>" +
                    "<title>Pride And Prejudice</title>" +
                    "<misc>&h;</misc>" +

        reader = new XmlNodeReader(doc);

        // Parse the file and display each node.
        while (reader.Read()) {
           if (reader.HasValue)
             Console.WriteLine("({0})  {1}={2}", reader.NodeType, reader.Name, reader.Value);
             Console.WriteLine("({0}) {1}", reader.NodeType, reader.Name);

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

Imports System.IO
Imports System.Xml

Public Class Sample
    Public Shared Sub Main()
        Dim reader As XmlNodeReader = Nothing
            'Create and load an XmlDocument.
            Dim doc As New XmlDocument()
            doc.LoadXml("<?xml version='1.0' ?>" & _
                        "<!DOCTYPE book [<!ENTITY h 'hardcover'>]>" & _
                        "<book>" & _
                        "<title>Pride And Prejudice</title>" & _
                        "<misc>&h;</misc>" & _
            reader = New XmlNodeReader(doc)
            'Parse the file and display each node.
            While reader.Read()
                If reader.HasValue Then
                    Console.WriteLine("({0})  {1}={2}", reader.NodeType, reader.Name, reader.Value)
                    Console.WriteLine("({0}) {1}", reader.NodeType, reader.Name)
                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.

返す値を持つノード型の一覧を次の表に示します。The following table lists node types that have a value to return.

ノード型Node Type Value
Attribute 属性の値。The value of the attribute.
CDATA CDATA セクションの内容。The content of the CDATA section.
Comment コメントの内容。The content of the comment.
DocumentType 内部サブセット。The internal subset.
ProcessingInstruction ターゲットを除く全内容。The entire content, excluding the target.
SignificantWhitespace 混合コンテンツ モデル内のマークアップ間の空白。The white space between markup in a mixed content model.
Text テキスト ノードの内容。The content of the text node.
Whitespace マークアップ間の空白。The white space between markup.
XmlDeclaration 宣言の内容。The content of the declaration.