Freigeben über


XmlNodeReader.Close-Methode

Ändert den ReadState in Closed.

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

Syntax

'Declaration
Public Overrides Sub Close
'Usage
Dim instance As XmlNodeReader

instance.Close
public override void Close ()
public:
virtual void Close () override
public void Close ()
public override function Close ()

Hinweise

Hinweis

Die empfohlene Vorgehensweise für Microsoft .NET Framework, Version 2.0 besteht darin, XmlReader-Instanzen mithilfe der XmlReaderSettings-Klasse und der Create-Methode zu erstellen. Dies erlaubt es, alle Vorteile der neu in .NET Framework enthaltenen Features zu nutzen. Weitere Informationen finden Sie unter Erstellen von XML-Readern.

Diese Methode gibt außerdem alle beim Lesen gebundenen Ressourcen frei. Wenn Close bereits abgerufen wurde, wird keine Aktion ausgeführt.

Beispiel

Im folgenden Beispiel wird eine Datei analysiert, und der Reader wird geschlossen.

Imports System
Imports System.IO
Imports System.Xml

Public Class Sample
    Private Const filename As String = "items.xml"
    Public Shared Sub Main()
        Dim reader As XmlNodeReader = Nothing
        Try
            'Create an XmlNodeReader to read the XmlDocument.
            Dim doc As New XmlDocument()
            doc.Load(filename)
            reader = New XmlNodeReader(doc)
            
            'Parse the file and display each of the nodes.
            While reader.Read()
                Select Case reader.NodeType
                    Case XmlNodeType.Element
                        Console.Write("<{0}>", reader.Name)
                    Case XmlNodeType.Text
                        Console.Write(reader.Value)
                    Case XmlNodeType.CDATA
                        Console.Write(reader.Value)
                    Case XmlNodeType.ProcessingInstruction
                        Console.Write("<?{0} {1}?>", reader.Name, reader.Value)
                    Case XmlNodeType.Comment
                        Console.Write("<!--{0}-->", reader.Value)
                    Case XmlNodeType.XmlDeclaration
                        Console.Write("<?xml version='1.0'?>")
                    Case XmlNodeType.Document
                    Case XmlNodeType.EndElement
                        Console.Write("</{0}>", reader.Name)
                End Select
            End While
        
        Finally
            If Not (reader Is Nothing) Then
                reader.Close()
            End If
        End Try
    End Sub 'Main ' End class
End Class 'Sample 
using System;
using System.IO;
using System.Xml;

public class Sample
{
  private const String filename = "items.xml";

  public static void Main()
  {
    XmlNodeReader reader = null;

    try
    {           
        //Create an XmlNodeReader to read the XmlDocument.
        XmlDocument doc = new XmlDocument();
        doc.Load(filename);
        reader = new 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!=null)
         reader.Close();
     }
  }
} // End class
#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();
   }

}
import System.*;
import System.IO.*;
import System.Xml.*;

public class Sample
{
    private static String fileName = "items.xml";
    public static void main(String[] args)
    {
        XmlNodeReader reader = null;
        try {
            //Create an XmlNodeReader to read the XmlDocument.
            XmlDocument doc = new XmlDocument();
            doc.Load(fileName);
            reader = new XmlNodeReader(doc);

            //Parse the file and display each of the nodes.
            while (reader.Read()) {
                switch (reader.get_NodeType()) {
                    case XmlNodeType.Element :
                        Console.Write("<{0}>", reader.get_Name());
                        break;

                    case XmlNodeType.Text :
                        Console.Write(reader.get_Value());
                        break;

                    case XmlNodeType.CDATA :
                        Console.Write(reader.get_Value());
                        break;

                    case XmlNodeType.ProcessingInstruction :
                        Console.Write("<?{0} {1}?>", reader.get_Name(), 
                            reader.get_Value());
                        break;

                    case XmlNodeType.Comment :
                        Console.Write("<!--{0}-->", reader.get_Value());
                        break;

                    case XmlNodeType.XmlDeclaration :
                        Console.Write("<?xml version='1.0'?>");
                        break;

                    case XmlNodeType.Document :
                        break;

                    case XmlNodeType.EndElement :
                        Console.Write("</{0}>", reader.get_Name());
                        break;
                }
            }
        } 
        finally {
            if (reader != null) {
                reader.Close();
            }
        }
    } //main
} //End class Sample

Im Beispiel wird die Datei items.xml als Eingabe verwendet.

<?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: &#65;</Item>
  <!-- Fourteen chars in this element.-->
  <Item>1234567890ABCD</Item>
</Items>

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

XmlNodeReader-Klasse
XmlNodeReader-Member
System.Xml-Namespace

Weitere Ressourcen

Lesen von XML mit dem "XmlReader"