XmlNodeReader::Read Method ()
Reads the next node from the stream.
Assembly: System.Xml (in System.Xml.dll)
Return Value
Type: System::Booleantrue if the next node was read successfully; false if there are no more nodes to read.
Note |
|---|
In the .NET Framework 2.0, the recommended practice is to create XmlReader instances using the XmlReaderSettings class and the Create method. This allows you to take full advantage of all the new features introduced in the .NET Framework. For more information, see the Remarks section in the XmlReader reference page. |
When a reader is first created and initialized, there is no information available. You must call Read to read the first node.
The following example reads an XML and displays each node.
#using <System.Xml.dll> using namespace System; using namespace System::IO; using namespace System::Xml; int main() { String^ filename = "items.xml"; XmlNodeReader^ reader = nullptr; try { //Create an XmlNodeReader to read the XmlDocument. XmlDocument^ doc = gcnew XmlDocument; doc->Load( filename ); reader = gcnew XmlNodeReader( doc ); //Parse the file and display each of the nodes. while ( reader->Read() ) { switch ( reader->NodeType ) { case XmlNodeType::Element: Console::Write( "<{0}>", reader->Name ); break; case XmlNodeType::Text: Console::Write( reader->Value ); break; case XmlNodeType::CDATA: Console::Write( reader->Value ); break; case XmlNodeType::ProcessingInstruction: Console::Write( "<?{0} {1}?>", reader->Name, reader->Value ); break; case XmlNodeType::Comment: Console::Write( "<!--{0}-->", reader->Value ); break; case XmlNodeType::XmlDeclaration: Console::Write( "<?xml version='1.0'?>" ); break; case XmlNodeType::Document: break; case XmlNodeType::EndElement: Console::Write( "</{0}>", reader->Name ); break; } } } finally { if ( reader != nullptr ) reader->Close(); } }
The example uses the file, items.xml, as input.
<?xml version="1.0"?> <!-- This is a sample XML document --> <!DOCTYPE Items [<!ENTITY number "123">]> <Items> <Item>Test with an entity: &number;</Item> <Item>test with a child element <more/> stuff</Item> <Item>test with a CDATA section <![CDATA[<456>]]> def</Item> <Item>Test with a char entity: A</Item> <!-- Fourteen chars in this element.--> <Item>1234567890ABCD</Item> </Items>
Available since 1.1
