XmlTextReader 构造函数

定义

初始化 XmlTextReader 的新实例。

重载

XmlTextReader()

初始化 XmlTextReader 的新实例。

XmlTextReader(String, XmlNodeType, XmlParserContext)

使用指定的字符串、XmlNodeTypeXmlParserContext 初始化 XmlTextReader 类的新实例。

XmlTextReader(String, TextReader, XmlNameTable)

使用指定的 URL、TextReaderXmlNameTable 初始化 XmlTextReader 类的新实例。

XmlTextReader(String, Stream, XmlNameTable)

使用指定的 URL、流和 XmlNameTable 初始化 XmlTextReader 类的新实例。

XmlTextReader(Stream, XmlNodeType, XmlParserContext)

用指定的流、XmlNodeTypeXmlParserContext 初始化 XmlTextReader 类的新实例。

XmlTextReader(String, TextReader)

使用指定的 URL 和 TextReader 初始化 XmlTextReader 类的新实例。

XmlTextReader(String, Stream)

使用指定的 URL 和流初始化 XmlTextReader 类的新实例。

XmlTextReader(String, XmlNameTable)

使用指定的文件和 XmlNameTable 初始化 XmlTextReader 类的新实例。

XmlTextReader(Stream, XmlNameTable)

用指定的流和 XmlNameTable 初始化 XmlTextReader 类的新实例。

XmlTextReader(XmlNameTable)

使用指定的 XmlTextReader 初始化 XmlNameTable 类的新实例。

XmlTextReader(String)

用指定的文件初始化 XmlTextReader 类的新实例。

XmlTextReader(TextReader)

使用指定的 XmlTextReader 初始化 TextReader 类的新实例。

XmlTextReader(Stream)

使用指定的流初始化 XmlTextReader 类的新实例。

XmlTextReader(TextReader, XmlNameTable)

使用指定的 XmlTextReaderTextReader 初始化 XmlNameTable 类的新实例。

注解

备注

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

XmlTextReader()

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

初始化 XmlTextReader 的新实例。

protected:
 XmlTextReader();
protected XmlTextReader ();
Protected Sub New ()

另请参阅

适用于

XmlTextReader(String, XmlNodeType, XmlParserContext)

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

使用指定的字符串、XmlNodeTypeXmlParserContext 初始化 XmlTextReader 类的新实例。

public:
 XmlTextReader(System::String ^ xmlFragment, System::Xml::XmlNodeType fragType, System::Xml::XmlParserContext ^ context);
public XmlTextReader (string xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext? context);
public XmlTextReader (string xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context);
new System.Xml.XmlTextReader : string * System.Xml.XmlNodeType * System.Xml.XmlParserContext -> System.Xml.XmlTextReader
Public Sub New (xmlFragment As String, fragType As XmlNodeType, context As XmlParserContext)

参数

xmlFragment
String

包含要分析的 XML 片段的字符串。

fragType
XmlNodeType

XML 片段的 XmlNodeType。 这也确定了片段字符串可以包含的内容。 (请参见下表。)

context
XmlParserContext

分析 xmlFragment 所用的 XmlParserContext。 这包括 XmlNameTable 要使用的 、编码、命名空间范围、当前 xml:langxml:space 范围。

例外

fragType 不是 ElementAttributeDocumentXmlNodeType

xmlFragmentnull

示例

以下示例分析 XML 片段。 它使用 XmlParserContext 及其 XmlNamespaceManager 来处理命名空间解析。

#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();
}
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
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

注解

备注

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

此构造函数将给定的字符串分析为 XML 片段。 如果 XML 片段是元素或属性,则可以绕过格式正确的 XML 文档的根级别规则。 此构造函数可以处理从 ReadInnerXml返回的字符串。

下表列出了 的有效 fragType 值以及读取器如何分析每个不同节点类型。

XmlNodeType 片段可能包含
元素 任何有效的元素内容 (例如元素、注释、处理指令、CDATA 节、文本和实体引用的任意组合) 。

还可以提供 XML 声明。 这使你可以指定 XML 片段的编码,而不必在 对象上 XmlParserContext 设置它。
Attribute 属性的值 (引号) 内的部件。
文档 整个 XML 文档的内容。 这会强制实施文档级别规则。

另请参阅

适用于

XmlTextReader(String, TextReader, XmlNameTable)

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

使用指定的 URL、TextReaderXmlNameTable 初始化 XmlTextReader 类的新实例。

public:
 XmlTextReader(System::String ^ url, System::IO::TextReader ^ input, System::Xml::XmlNameTable ^ nt);
public XmlTextReader (string url, System.IO.TextReader input, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : string * System.IO.TextReader * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (url As String, input As TextReader, nt As XmlNameTable)

参数

url
String

用于解析外部资源的 URL。 BaseURI 设置为此值。 如果 urlnull,则 BaseURI 设置为 String.Empty

input
TextReader

包含要读取的 XML 数据的 TextReader

nt
XmlNameTable

要使用的 XmlNameTable

例外

nt 值为 null

注解

备注

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

假定 TextReader 已设置为正确的编码方式。 这由已在多部分 MIME 方案中从流中读取某些内容的客户端使用。

另请参阅

适用于

XmlTextReader(String, Stream, XmlNameTable)

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

使用指定的 URL、流和 XmlNameTable 初始化 XmlTextReader 类的新实例。

public:
 XmlTextReader(System::String ^ url, System::IO::Stream ^ input, System::Xml::XmlNameTable ^ nt);
public XmlTextReader (string url, System.IO.Stream input, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : string * System.IO.Stream * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (url As String, input As Stream, nt As XmlNameTable)

参数

url
String

用于解析外部资源的 URL。 BaseURI 设置为此值。 如果 urlnull,则 BaseURI 设置为 String.Empty

input
Stream

包含要读取的 XML 数据的流。

nt
XmlNameTable

要使用的 XmlNameTable

例外

inputnt 值为 null

注解

备注

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

另请参阅

适用于

XmlTextReader(Stream, XmlNodeType, XmlParserContext)

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

用指定的流、XmlNodeTypeXmlParserContext 初始化 XmlTextReader 类的新实例。

public:
 XmlTextReader(System::IO::Stream ^ xmlFragment, System::Xml::XmlNodeType fragType, System::Xml::XmlParserContext ^ context);
public XmlTextReader (System.IO.Stream xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext? context);
public XmlTextReader (System.IO.Stream xmlFragment, System.Xml.XmlNodeType fragType, System.Xml.XmlParserContext context);
new System.Xml.XmlTextReader : System.IO.Stream * System.Xml.XmlNodeType * System.Xml.XmlParserContext -> System.Xml.XmlTextReader
Public Sub New (xmlFragment As Stream, fragType As XmlNodeType, context As XmlParserContext)

参数

xmlFragment
Stream

包含要分析的 XML 片段的流。

fragType
XmlNodeType

XML 片段的 XmlNodeType。 这也确定了片段可以包含的内容。 (请参见下表。)

context
XmlParserContext

分析 xmlFragment 所用的 XmlParserContext。 这包括 XmlNameTable 要使用的 、编码、命名空间范围、当前 xml:langxml:space 范围。

例外

fragType 不是 Element、Attribute 或 Document XmlNodeType

xmlFragmentnull

注解

备注

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

此构造函数将给定的字符串分析为 XML 片段。 如果 XML 片段是元素或属性,则可以绕过格式正确的 XML 文档的根级别规则。

下表列出了 的有效 fragType值。

XmlNodeType 片段可能包含
Element 任何有效的元素内容 (例如元素、注释、处理指令、CDATA 节、文本和实体引用的任意组合) 。

还可以提供 XML 声明。 这使你可以指定 XML 片段的编码,而不必在 对象上 XmlParserContext 设置它。
Attribute 属性的值 (引号) 内的部件。
Document 整个 XML 文档的内容。 这会强制实施文档级别规则。

读取器使用以下内容来确定流的编码。

  1. XmlParserContext.Encoding检查 属性以确定编码。

  2. Encoding如果 属性为 null,则读取器将检查流开头的字节顺序标记。

  3. Encoding如果 属性为 null,并且找不到字节顺序标记,则读取器假定流以 UTF-8 编码。

另请参阅

适用于

XmlTextReader(String, TextReader)

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

使用指定的 URL 和 TextReader 初始化 XmlTextReader 类的新实例。

public:
 XmlTextReader(System::String ^ url, System::IO::TextReader ^ input);
public XmlTextReader (string url, System.IO.TextReader input);
new System.Xml.XmlTextReader : string * System.IO.TextReader -> System.Xml.XmlTextReader
Public Sub New (url As String, input As TextReader)

参数

url
String

用于解析外部资源的 URL。 BaseURI 设置为此值。

input
TextReader

包含要读取的 XML 数据的 TextReader

注解

注意

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

假定 TextReader 已设置为正确的编码方式。 这由已在多部分 MIME 方案中从流中读取某些内容的客户端使用。

另请参阅

适用于

XmlTextReader(String, Stream)

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

使用指定的 URL 和流初始化 XmlTextReader 类的新实例。

public:
 XmlTextReader(System::String ^ url, System::IO::Stream ^ input);
public XmlTextReader (string url, System.IO.Stream input);
new System.Xml.XmlTextReader : string * System.IO.Stream -> System.Xml.XmlTextReader
Public Sub New (url As String, input As Stream)

参数

url
String

用于解析外部资源的 URL。 BaseURI 设置为此值。

input
Stream

包含要读取的 XML 数据的流。

例外

inputnull

注解

备注

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

另请参阅

适用于

XmlTextReader(String, XmlNameTable)

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

使用指定的文件和 XmlNameTable 初始化 XmlTextReader 类的新实例。

public:
 XmlTextReader(System::String ^ url, System::Xml::XmlNameTable ^ nt);
public XmlTextReader (string url, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : string * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (url As String, nt As XmlNameTable)

参数

url
String

包含要读取的 XML 数据的文件的 URL。

nt
XmlNameTable

要使用的 XmlNameTable

例外

nt 值为 null

无法找到指定的文件。

无法找到部分文件名或目录。

url 是一个空字符串。

无法解析远程文件名。

- 或 -

处理该请求时出错。

url 不是有效的 URI。

注解

备注

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

另请参阅

适用于

XmlTextReader(Stream, XmlNameTable)

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

用指定的流和 XmlNameTable 初始化 XmlTextReader 类的新实例。

public:
 XmlTextReader(System::IO::Stream ^ input, System::Xml::XmlNameTable ^ nt);
public XmlTextReader (System.IO.Stream input, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : System.IO.Stream * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (input As Stream, nt As XmlNameTable)

参数

input
Stream

包含要读取的 XML 数据的流。

nt
XmlNameTable

要使用的 XmlNameTable

例外

inputnt 值为 null

注解

注意

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

使用 XmlTextReaderSystem.Text.Encoding解码流。

如果指定名称表,此构造函数将使用已在该表中定义的名称。

另请参阅

适用于

XmlTextReader(XmlNameTable)

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

使用指定的 XmlTextReader 初始化 XmlNameTable 类的新实例。

protected:
 XmlTextReader(System::Xml::XmlNameTable ^ nt);
protected XmlTextReader (System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Protected Sub New (nt As XmlNameTable)

参数

nt
XmlNameTable

要使用的 XmlNameTable

注解

备注

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

另请参阅

适用于

XmlTextReader(String)

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

用指定的文件初始化 XmlTextReader 类的新实例。

public:
 XmlTextReader(System::String ^ url);
public XmlTextReader (string url);
new System.Xml.XmlTextReader : string -> System.Xml.XmlTextReader
Public Sub New (url As String)

参数

url
String

包含 XML 数据的文件的 URL。 BaseURI 设置为此值。

例外

无法找到指定的文件。

无法找到部分文件名或目录。

url 是一个空字符串。

无法解析远程文件名。

- 或 -

处理该请求时出错。

url 不是有效的 URI。

示例

以下示例读取 XML 文件并显示每个节点。

#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();
   }

}
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
Option Strict
Option Explicit

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
End Class

该示例使用 文件 items.xml作为输入。


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

注解

注意

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

如果文件位于需要访问凭据的资源上,请使用 XmlResolver 属性指定必要的凭据。

备注

在 .NET Framework版本 1.1 中,部分受信任的代码无法设置 XmlResolver 属性。 解决方法是创建XmlUrlResolver具有所需凭据的 ,将 URI 传递给 XmlUrlResolver.GetEntity 方法,然后使用生成的 Stream 对象构造 XmlTextReader 。 以下 C# 代码介绍了解决方法。

// 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);

另请参阅

适用于

XmlTextReader(TextReader)

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

使用指定的 XmlTextReader 初始化 TextReader 类的新实例。

public:
 XmlTextReader(System::IO::TextReader ^ input);
public XmlTextReader (System.IO.TextReader input);
new System.Xml.XmlTextReader : System.IO.TextReader -> System.Xml.XmlTextReader
Public Sub New (input As TextReader)

参数

input
TextReader

包含要读取的 XML 数据的 TextReader

示例

以下示例使用 StringReader 类将 XmlTextReader XML 字符串加载到 对象中。

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   String^ xmlData = "<book>\r\n       <title>Oberon's Legacy</title>\r\n       <price>5.95</price>\r\n      </book>";
   
   // Create the reader.
   XmlTextReader^ reader = gcnew XmlTextReader( gcnew StringReader( xmlData ) );
   reader->WhitespaceHandling = WhitespaceHandling::None;
   
   // Display each element node.
   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::EndElement:
            Console::Write( "</{0}>", reader->Name );
            break;
      }
   }

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

public class Sample {

  public static void Main() {

    string xmlData =
    @"<book>
       <title>Oberon's Legacy</title>
       <price>5.95</price>
      </book>";

    // Create the reader.
    XmlTextReader reader = new XmlTextReader(new StringReader(xmlData));
    reader.WhitespaceHandling = WhitespaceHandling.None;

    // Display each element node.
    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.EndElement:
           Console.Write("</{0}>", reader.Name);
           break;
      }
    }

    // Close the reader.
    reader.Close();
  }
} // End class
Imports System.IO
Imports System.Xml

public class Sample 

  public shared sub Main()

    Dim xmlData as string 
    xmlData = "<book>" & _
              "  <title>Oberon's Legacy</title>" & _
              "  <price>5.95</price>" & _
              "</book>"

    ' Create the reader.
    Dim reader as XmlTextReader = new XmlTextReader(new StringReader(xmlData))
    reader.WhitespaceHandling = WhitespaceHandling.None

    ' Display each element node.
    while reader.Read()
       select case reader.NodeType
         case XmlNodeType.Element
           Console.Write("<{0}>", reader.Name)
         case XmlNodeType.Text
           Console.Write(reader.Value)
         case XmlNodeType.EndElement
           Console.Write("</{0}>", reader.Name)
       end select       
    end while           

    ' Close the reader.
    reader.Close()       
  end sub
end class

注解

备注

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

假定 TextReader 已设置为正确的编码方式。 这由已在多部分 MIME 方案中从流中读取某些内容的客户端使用。

另请参阅

适用于

XmlTextReader(Stream)

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

使用指定的流初始化 XmlTextReader 类的新实例。

public:
 XmlTextReader(System::IO::Stream ^ input);
public XmlTextReader (System.IO.Stream input);
new System.Xml.XmlTextReader : System.IO.Stream -> System.Xml.XmlTextReader
Public Sub New (input As Stream)

参数

input
Stream

包含要读取的 XML 数据的流。

例外

inputnull

注解

备注

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

使用 XmlTextReaderSystem.Text.Encoding解码流。

另请参阅

适用于

XmlTextReader(TextReader, XmlNameTable)

Source:
XmlTextReader.cs
Source:
XmlTextReader.cs
Source:
XmlTextReader.cs

使用指定的 XmlTextReaderTextReader 初始化 XmlNameTable 类的新实例。

public:
 XmlTextReader(System::IO::TextReader ^ input, System::Xml::XmlNameTable ^ nt);
public XmlTextReader (System.IO.TextReader input, System.Xml.XmlNameTable nt);
new System.Xml.XmlTextReader : System.IO.TextReader * System.Xml.XmlNameTable -> System.Xml.XmlTextReader
Public Sub New (input As TextReader, nt As XmlNameTable)

参数

input
TextReader

包含要读取的 XML 数据的 TextReader

nt
XmlNameTable

要使用的 XmlNameTable

例外

nt 值为 null

注解

备注

从 .NET Framework 2.0 开始,建议使用 XmlReader.Create 方法创建XmlReader实例,以利用新功能。

假定 TextReader 已设置为正确的编码方式。 这由已在多部分 MIME 方案中从流中读取某些内容的客户端使用。

另请参阅

适用于