Freigeben über


XmlTextReader-Konstruktor (String)

Initialisiert eine neue Instanz der XmlTextReader-Klasse mit der angegebenen Datei.

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

Syntax

'Declaration
Public Sub New ( _
    url As String _
)
'Usage
Dim url As String

Dim instance As New XmlTextReader(url)
public XmlTextReader (
    string url
)
public:
XmlTextReader (
    String^ url
)
public XmlTextReader (
    String url
)
public function XmlTextReader (
    url : String
)

Parameter

  • url
    Der URL der Datei, die die XML-Daten enthält. Der BaseURI wird auf diesen Wert festgelegt.

Ausnahmen

Ausnahmetyp Bedingung

FileNotFoundException

Die angegebene Datei kann nicht gefunden werden.

DirectoryNotFoundException

Ein Teil des Dateinamens oder Verzeichnisses kann nicht gefunden werden.

InvalidOperationException

url ist eine leere Zeichenfolge.

WebException

Der Remotedateiname kann nicht aufgelöst werden.

- oder -

Fehler bei der Verarbeitung der Anforderung.

UriFormatException

url ist kein gültiger URI.

Hinweise

Hinweis

Die empfohlene Vorgehensweise für die Version Microsoft .NET Framework, Version 2.0 besteht darin, mithilfe der System.Xml.XmlReader.Create-Methode XmlReader-Instanzen zu erstellen. So können Sie die neuen Features dieser Version in vollem Umfang nutzen. Weitere Informationen finden Sie unter Erstellen von XML-Readern.

Wenn sich die Datei auf einer Ressource befindet, die für den Zugriff Anmeldeinformationen erfordert, geben Sie die notwendigen Informationen mithilfe der XmlResolver-Eigenschaft an.

Hinweis

In der Version 1.1 von .NET Framework ist ein Festlegen der XmlResolver-Eigenschaft durch teilweise vertrauenswürdigen Code nicht möglich. Um dieses Problem zu umgehen, erstellen Sie einen XmlUrlResolver mit den notwendigen Anmeldeinformationen, übergeben den URI an die XmlUrlResolver.GetEntity-Methode und erstellen dann mithilfe des erhaltenen Stream-Objekts den XmlTextReader. Der folgende C#-Code veranschaulicht diese Problemlösung.

 // Create a resolver with the necessary credentials.
 XmlUrlResolver resolver = new XmlUrlResolver();
 NetworkCredential nc = new NetworkCredential(SecurelyStoredUserName, SecurelyStoredPassword, SecurelyStoredDomain);
 resolver.Credentials = nc; 
 // Get a Stream object containing the XML file.
 Uri myUri = new Uri ("http://myServer/data/books.xml");
 Stream s=(Stream)resolver.GetEntity(myUri, null, typeof(Stream));
 // Construct a reader using the Stream object.
 XmlTextReader reader = new XmlTextReader(s);

Beispiel

Im folgenden Beispiel wird eine XML-Datei gelesen, und alle Knoten werden angezeigt.

Option Strict
Option Explicit

Imports System
Imports System.IO
Imports System.Xml

'Reads an XML document
Public Class Sample
    Private Const filename As String = "items.xml"
    
    Public Shared Sub Main()
        Dim reader As XmlTextReader = Nothing
        
        Try
            ' Load the reader with the data file and ignore all white space nodes.         
            reader = New XmlTextReader(filename)
            reader.WhitespaceHandling = WhitespaceHandling.None
            
            ' 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("<![CDATA[{0}]]>", 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.DocumentType
                        Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value)
                    Case XmlNodeType.EntityReference
                        Console.Write(reader.Name)
                    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 'Sample
using System;
using System.IO;
using System.Xml;

public class Sample {

  private const String filename = "items.xml";

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

     try {
       
        // Load the reader with the data file and ignore all white space nodes.         
        reader = new XmlTextReader(filename);
        reader.WhitespaceHandling = WhitespaceHandling.None;

        // 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("<![CDATA[{0}]]>", 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.DocumentType:
               Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value);
               break;
             case XmlNodeType.EntityReference:
               Console.Write(reader.Name);
               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()
{
   XmlTextReader^ reader = nullptr;
   String^ filename = "items.xml";
   try
   {
      
      // Load the reader with the data file and ignore all white space nodes.         
      reader = gcnew XmlTextReader( filename );
      reader->WhitespaceHandling = WhitespaceHandling::None;
      
      // 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( "<![CDATA[{0}]]>", 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::DocumentType:
               Console::Write( "<!DOCTYPE {0} [{1}]", reader->Name, reader->Value );
               break;

            case XmlNodeType::EntityReference:
               Console::Write( reader->Name );
               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)
    {
        XmlTextReader reader = null;
        try {

            // Load the reader with the data file and ignore 
            //all white space nodes.         
            reader = new XmlTextReader(fileName);
            reader.set_WhitespaceHandling(WhitespaceHandling.None);

            // 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("<![CDATA[{0}]]>", 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.DocumentType : 
                        Console.Write("<!DOCTYPE {0} [{1}]", reader.get_Name(),
                        reader.get_Value());
                        break;
                    case XmlNodeType.EntityReference : 
                        Console.Write(reader.get_Name());
                        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 an 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

XmlTextReader-Klasse
XmlTextReader-Member
System.Xml-Namespace
XmlResolver

Weitere Ressourcen

Lesen von XML mit dem "XmlReader"