XmlValidatingReader.Read 方法

从流中读取下一个节点。

**命名空间:**System.Xml
**程序集:**System.Xml(在 system.xml.dll 中)

语法

声明
Public Overrides Function Read As Boolean
用法
Dim instance As XmlValidatingReader
Dim returnValue As Boolean

returnValue = instance.Read
public override bool Read ()
public:
virtual bool Read () override
public boolean Read ()
public override function Read () : boolean

返回值

如果成功读取了下一个节点,则为 true;如果没有其他节点可读取,则为 false

备注

提示

XmlValidatingReader 类在 Microsoft .NET Framework 2.0 版 中已过时。您可以使用 XmlReaderSettings 类和 Create 方法创建一个验证 XmlReader 实例。有关更多信息,请参见 使用 XmlReader 验证 XML 数据

第一次创建和初始化读取器时,没有可用的信息。必须调用 Read 读取第一个节点。

示例

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

Imports System
Imports System.IO
Imports System.Xml

Public Class Sample
   Private Const filename As String = "items.xml"
   
   Public Shared Sub Main()
      Dim txtreader As XmlTextReader = Nothing
      Dim reader As XmlValidatingReader = Nothing
      
      Try
         'Load the reader with the data file and ignore all white space nodes.         
         txtreader = New XmlTextReader(filename)
         txtreader.WhitespaceHandling = WhitespaceHandling.None
         
         'Implement the validating reader over the text reader. 
         reader = New XmlValidatingReader(txtreader)
         reader.ValidationType = ValidationType.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 txtreader = null;
     XmlValidatingReader reader = null;

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

        //Implement the validating reader over the text reader. 
        reader = new XmlValidatingReader(txtreader);
        reader.ValidationType = ValidationType.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^ txtreader = nullptr;
   XmlValidatingReader^ reader = nullptr;
   String^ filename = "items.xml";
   try
   {
      
      //Load the reader with the data file and ignore all white space nodes.         
      txtreader = gcnew XmlTextReader( filename );
      txtreader->WhitespaceHandling = WhitespaceHandling::None;
      
      //Implement the validating reader over the text reader. 
      reader = gcnew XmlValidatingReader( txtreader );
      reader->ValidationType = ValidationType::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 txtReader = null;
        XmlValidatingReader reader = null;

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

            //Implement the validating reader over the text reader. 
            reader = new XmlValidatingReader(txtReader);
            reader.set_ValidationType(ValidationType.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 

该示例使用文件 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 a char entity: &#65;</Item>
  <!-- Fourteen chars in this element.-->
  <Item>1234567890ABCD</Item>
</Items>

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

XmlValidatingReader 类
XmlValidatingReader 成员
System.Xml 命名空间

其他资源

用 XmlReader 读取 XML