Freigeben über


XmlTextReader-Konstruktor (String, XmlNodeType, XmlParserContext)

Initialisiert eine neue Instanz der XmlTextReader-Klasse mit der angegebenen Zeichenfolge, XmlNodeType und XmlParserContext.

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

Syntax

'Declaration
Public Sub New ( _
    xmlFragment As String, _
    fragType As XmlNodeType, _
    context As XmlParserContext _
)
'Usage
Dim xmlFragment As String
Dim fragType As XmlNodeType
Dim context As XmlParserContext

Dim instance As New XmlTextReader(xmlFragment, fragType, context)
public XmlTextReader (
    string xmlFragment,
    XmlNodeType fragType,
    XmlParserContext context
)
public:
XmlTextReader (
    String^ xmlFragment, 
    XmlNodeType fragType, 
    XmlParserContext^ context
)
public XmlTextReader (
    String xmlFragment, 
    XmlNodeType fragType, 
    XmlParserContext context
)
public function XmlTextReader (
    xmlFragment : String, 
    fragType : XmlNodeType, 
    context : XmlParserContext
)

Parameter

  • xmlFragment
    Die Zeichenfolge, die das zu analysierende XML-Fragment enthält.
  • fragType
    Der XmlNodeType des XML-Fragments. Damit wird auch der mögliche Inhalt der Zeichenfolge mit dem Fragment bestimmt. (Siehe Tabelle unten.)
  • context
    Der XmlParserContext, in dem das xmlFragment analysiert werden soll. Dazu gehören die zu verwendende XmlNameTable, die Codierung, der Namespacebereich, der aktuelle xml:lang und der aktuelle xml:space-Bereich.

Ausnahmen

Ausnahmetyp Bedingung

XmlException

fragType ist kein Element, Attribute oder DocumentXmlNodeType.

ArgumentNullException

xmlFragment ist NULL (Nothing in Visual Basic).

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.

Dieser Konstruktor analysiert die angegebene Zeichenfolge als XML-Fragment. Wenn das XML-Fragment ein Element oder Attribut ist, können die Regeln auf Stammebene für wohlgeformte XML-Dokumente umgangen werden. Dieser Konstruktor kann Zeichenfolgen behandeln, die von ReadInnerXml zurückgegeben werden.

Die folgende Tabelle enthält eine Liste gültiger Werte für fragType sowie Informationen darüber, wie der Reader die einzelnen unterschiedlichen Knotentypen auswertet.

XmlNodeType

Möglicher Inhalt des Fragments

Element

Jeder gültige Elementinhalt (z. B. eine beliebige Kombination aus Elementen, Kommentaren, Verarbeitungsanweisungen, CDATA-Abschnitten, Text und Entitätenverweisen).

Eine XML-Deklaration kann ebenfalls angegeben werden. Dadurch können Sie die Codierung des XML-Fragments angeben und müssen es nicht auf das XmlParserContext-Objekt festlegen.

Attribute

Der Wert eines Attributs (der in Anführungszeichen eingeschlossene Teil).

Document

Der Inhalt eines vollständigen XML-Dokuments. Dies erzwingt die Regeln der Dokumentebene.

Beispiel

Im folgenden Beispiel wird ein XML-Fragment analysiert. Für die Behandlung der Namespaceauflösung werden der XmlParserContext und sein XmlNamespaceManager verwendet.

Imports System
Imports System.IO
Imports System.Xml

public class Sample 

  public shared sub Main()

    'Create the XML fragment to be parsed.
    Dim xmlFrag as string ="<book> " & _
                           "<title>Pride And Prejudice</title>" & _
                           "<bk:genre>novel</bk:genre>" & _
                           "</book>" 

    'Create the XmlNamespaceManager.
    Dim nt as NameTable = new NameTable()
    Dim nsmgr as XmlNamespaceManager = new XmlNamespaceManager(nt)
    nsmgr.AddNamespace("bk", "urn:sample")

    'Create the XmlParserContext.
    Dim context as XmlParserContext = new XmlParserContext(nothing, nsmgr, nothing, XmlSpace.None)

    'Create the reader. 
    Dim reader as XmlTextReader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context)
  
    'Parse the XML.  If they exist, display the prefix and  
    'namespace URI of each element.
    while (reader.Read())
      if (reader.IsStartElement())
        if (reader.Prefix=String.Empty)
           Console.WriteLine("<{0}>", reader.LocalName)
        else
            Console.Write("<{0}:{1}>", reader.Prefix, reader.LocalName)
            Console.WriteLine(" The namespace URI is " + reader.NamespaceURI)
        end if 
      end if
    end while
  
    'Close the reader.
    reader.Close()     
  
  end sub
end class
using System;
using System.IO;
using System.Xml;

public class Sample 
{
  public static void Main()
  {

    //Create the XML fragment to be parsed.
    string xmlFrag ="<book> " +
                    "<title>Pride And Prejudice</title>" +
                    "<bk:genre>novel</bk:genre>" +
                    "</book>"; 

    //Create the XmlNamespaceManager.
    NameTable nt = new NameTable();
    XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
    nsmgr.AddNamespace("bk", "urn:sample");

    //Create the XmlParserContext.
    XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);

    //Create the reader. 
    XmlTextReader reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context);
  
    //Parse the XML.  If they exist, display the prefix and  
    //namespace URI of each element.
    while (reader.Read()){
      if (reader.IsStartElement()){
        if (reader.Prefix==String.Empty)
           Console.WriteLine("<{0}>", reader.LocalName);
        else{
            Console.Write("<{0}:{1}>", reader.Prefix, reader.LocalName);
            Console.WriteLine(" The namespace URI is " + reader.NamespaceURI);
        }
      }
    }
  
    //Close the reader.
    reader.Close();     
  
  }
} // End class
#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   
   // Create the XML fragment to be parsed.
   String^ xmlFrag = "<book> <title>Pride And Prejudice</title> <bk:genre>novel</bk:genre> </book>";
   
   // Create the XmlNamespaceManager.
   NameTable^ nt = gcnew NameTable;
   XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager( nt );
   nsmgr->AddNamespace( "bk", "urn:sample" );
   
   // Create the XmlParserContext.
   XmlParserContext^ context = gcnew XmlParserContext( nullptr,nsmgr,nullptr,XmlSpace::None );
   
   // Create the reader. 
   XmlTextReader^ reader = gcnew XmlTextReader( xmlFrag,XmlNodeType::Element,context );
   
   // Parse the XML.  If they exist, display the prefix and  
   // namespace URI of each element.
   while ( reader->Read() )
   {
      if ( reader->IsStartElement() )
      {
         if ( reader->Prefix == String::Empty )
                  Console::WriteLine( "< {0}>", reader->LocalName );
         else
         {
            Console::Write( "< {0}: {1}>", reader->Prefix, reader->LocalName );
            Console::WriteLine( " The namespace URI is {0}", reader->NamespaceURI );
         }
      }
   }

   
   // Close the reader.
   reader->Close();
}
import System.*;
import System.IO.*;
import System.Xml.*;

public class Sample
{
    public static void main(String[] args)
    {
        //Create the XML fragment to be parsed.
        String xmlFrag = "<book> " + "<title>Pride And Prejudice</title>" 
            + "<bk:genre>novel</bk:genre>" + "</book>";
        //Create the XmlNamespaceManager.
        NameTable nt = new NameTable();
        XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
        nsmgr.AddNamespace("bk", "urn:sample");
        //Create the XmlParserContext.
        XmlParserContext context = new XmlParserContext(null, nsmgr, null,
            XmlSpace.None);
        //Create the reader. 
        XmlTextReader reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, 
            context);
        //Parse the XML.  If they exist, display the prefix and  
        //namespace URI of each element.
        while (reader.Read()) {
            if (reader.IsStartElement()) {
                if (reader.get_Prefix().Equals(String.Empty)) {
                    Console.WriteLine("<{0}>", reader.get_LocalName());
                }
                else {
                    Console.Write("<{0}:{1}>", reader.get_Prefix(),
                        reader.get_LocalName());
                    Console.WriteLine(" The namespace URI is " + 
                        reader.get_NamespaceURI());
                }
            }
        }
        //Close the reader.
        reader.Close();
    } //main 
} //End class Sample

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
XmlParserContext-Klasse

Weitere Ressourcen

Lesen von XML mit dem "XmlReader"