HasValue Property

XmlValidatingReader.HasValue Property

Gets a value indicating whether the current node can have a Value other than String.Empty.

Namespace:  System.Xml
Assembly:  System.Xml (in System.Xml.dll)

public override bool HasValue { get; }

Property Value

Type: System.Boolean
true if the node on which the reader is currently positioned can have a Value; otherwise, false.


The XmlValidatingReader class is obsolete in .NET Framework version 2.0. You can create a validating XmlReader instance by using the XmlReaderSettings class and the Create method. For more information, see Validating XML Data with XmlReader.

The following table lists node types that have a value to return.

Node Type



The value of the attribute.


The content of the CDATA section.


The content of the comment.


The internal subset.


The entire content, excluding the target.


The white space between markup in a mixed content model.


The content of the text node.


The white space between markup.


The content of the declaration.

The following example reads in XML with various data types and displays each of the nodes.

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

public class Sample

  public static void Main()

    //Create the validating reader.
    XmlTextReader txtreader = new XmlTextReader("book1.xml");
    txtreader.WhitespaceHandling = WhitespaceHandling.None;
    XmlValidatingReader reader = new XmlValidatingReader(txtreader);
    reader.ValidationType = ValidationType.None;

    //Parse the file and each node and its value. 
    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);


    //Close the reader.

} // End class
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;

int main()

   //Create the validating reader.
   XmlTextReader* txtreader = new XmlTextReader(S"book1.xml");
   txtreader->WhitespaceHandling = WhitespaceHandling::None;
   XmlValidatingReader* reader = new XmlValidatingReader(txtreader);
   reader->ValidationType = ValidationType::None;

   //Parse the file and each node and its value.
   while (reader->Read())
      if (reader->HasValue)
         Console::WriteLine(S"({0})  {1}={2}", __box(reader->NodeType), reader->Name, reader->Value);
         Console::WriteLine(S"({0}) {1}", __box(reader->NodeType), reader->Name);


   //Close the reader.


Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

Community Additions

© 2016 Microsoft