XmlReader Класс

Определение

Представляет средство чтения, которое обеспечивает быстрый, некрепленный, доступный только для пересылки доступ к XML-данным.

public ref class XmlReader abstract : IDisposable
public ref class XmlReader abstract
public abstract class XmlReader : IDisposable
public abstract class XmlReader
type XmlReader = class
    interface IDisposable
type XmlReader = class
Public MustInherit Class XmlReader
Implements IDisposable
Public MustInherit Class XmlReader
Наследование
XmlReader
Производный
Реализации

Примеры

В следующем примере кода показано, как использовать асинхронный API для анализа XML.

async Task TestReader(System.IO.Stream stream)
{
    XmlReaderSettings settings = new XmlReaderSettings();
    settings.Async = true;

    using (XmlReader reader = XmlReader.Create(stream, settings))
    {
        while (await reader.ReadAsync())
        {
            switch (reader.NodeType)
            {
                case XmlNodeType.Element:
                    Console.WriteLine("Start Element {0}", reader.Name);
                    break;
                case XmlNodeType.Text:
                    Console.WriteLine("Text Node: {0}",
                             await reader.GetValueAsync());
                    break;
                case XmlNodeType.EndElement:
                    Console.WriteLine("End Element {0}", reader.Name);
                    break;
                default:
                    Console.WriteLine("Other node {0} with value {1}",
                                    reader.NodeType, reader.Value);
                    break;
            }
        }
    }
}
Public Async Function TestReader(stream As System.IO.Stream) As Task
    Dim settings As New XmlReaderSettings()
    settings.Async = True

    Using reader As XmlReader = XmlReader.Create(stream, settings)
        While (Await reader.ReadAsync())
            Select Case (reader.NodeType)
                Case XmlNodeType.Element
                    Console.WriteLine("Start Element {0}", reader.Name)
                Case XmlNodeType.Text
                    Console.WriteLine("Text Node: {0}",
                             Await reader.GetValueAsync())
                Case XmlNodeType.EndElement
                    Console.WriteLine("End Element {0}", reader.Name)
                Case Else
                    Console.WriteLine("Other node {0} with value {1}",
                                    reader.NodeType, reader.Value)
            End Select
        End While
    End Using
End Function

Комментарии

Дополнительные сведения об этом API см. в дополнительных примечаниях API для XmlReader.

Конструкторы

Имя Описание
XmlReader()

Инициализирует новый экземпляр класса XmlReader.

Свойства

Имя Описание
AttributeCount

При переопределении в производном классе получает количество атрибутов на текущем узле.

BaseURI

При переопределении в производном классе получает базовый URI текущего узла.

CanReadBinaryContent

Возвращает значение, указывающее, реализует ли XmlReader методы чтения двоичного содержимого.

CanReadValueChunk

Возвращает значение, указывающее, реализует XmlReader ли ReadValueChunk(Char[], Int32, Int32) метод.

CanResolveEntity

Возвращает значение, указывающее, может ли средство чтения анализировать и разрешать сущности.

Depth

При переопределении в производном классе получает глубину текущего узла в XML-документе.

EOF

При переопределении в производном классе получает значение, указывающее, находится ли читатель в конце потока.

HasAttributes

Возвращает значение, указывающее, имеет ли текущий узел какие-либо атрибуты.

HasValue

При переопределении в производном классе получает значение, указывающее, может ли текущий узел иметь значение Value.

IsDefault

При переопределении в производном классе получает значение, указывающее, является ли текущий узел атрибутом, созданным из значения по умолчанию, определенного в DTD или схеме.

IsEmptyElement

При переопределении в производном классе получает значение, указывающее, является ли текущий узел пустым элементом (например, <MyElement/>).

Item[Int32]

При переопределении в производном классе получает значение атрибута с указанным индексом.

Item[String, String]

При переопределении в производном классе получает значение атрибута с указанным LocalName и NamespaceURI.

Item[String]

При переопределении в производном классе получает значение атрибута с указанным Name.

LocalName

При переопределении в производном классе получает локальное имя текущего узла.

Name

При переопределении в производном классе получает полное имя текущего узла.

NamespaceURI

При переопределении в производном классе получает URI пространства имен (как определено в спецификации пространства имен W3C) узла, на котором размещен читатель.

NameTable

При переопределении в производном классе получает XmlNameTable связанный с этой реализацией.

NodeType

При переопределении в производном классе получает тип текущего узла.

Prefix

При переопределении в производном классе получает префикс пространства имен, связанный с текущим узлом.

QuoteChar

При переопределении в производном классе получает символ кавычки, используемый для заключения значения узла атрибута.

ReadState

При переопределении в производном классе получает состояние средства чтения.

SchemaInfo

Возвращает сведения о схеме, назначенные текущему узлу в результате проверки схемы.

Settings

Возвращает объект, используемый XmlReaderSettings для создания этого XmlReader экземпляра.

Value

При переопределении в производном классе получает текстовое значение текущего узла.

ValueType

Возвращает тип среды CLR для текущего узла.

XmlLang

При переопределении в производном классе получает текущую xml:lang область.

XmlSpace

При переопределении в производном классе получает текущую xml:space область.

Методы

Имя Описание
Close()

При переопределении в производном классе изменяет значение ReadStateClosed.

Create(Stream, XmlReaderSettings, String)

Создает новый XmlReader экземпляр с помощью указанного потока, базового URI и параметров.

Create(Stream, XmlReaderSettings, XmlParserContext)

Создает новый XmlReader экземпляр, используя указанный поток, параметры и сведения о контексте для синтаксического анализа.

Create(Stream, XmlReaderSettings)

Создает новый XmlReader экземпляр с указанным потоком и параметрами.

Create(Stream)

Создает новый XmlReader экземпляр с помощью указанного потока с параметрами по умолчанию.

Create(String, XmlReaderSettings, XmlParserContext)

Создает новый XmlReader экземпляр с помощью указанного URI, параметров и сведений о контексте для синтаксического анализа.

Create(String, XmlReaderSettings)

Создает новый XmlReader экземпляр с помощью указанного URI и параметров.

Create(String)

Создает новый XmlReader экземпляр с указанным универсальным кодом ресурса (URI).

Create(TextReader, XmlReaderSettings, String)

Создает новый XmlReader экземпляр с помощью указанного средства чтения текста, параметров и базового URI.

Create(TextReader, XmlReaderSettings, XmlParserContext)

Создает новый XmlReader экземпляр с помощью указанного средства чтения текста, параметров и контекстной информации для синтаксического анализа.

Create(TextReader, XmlReaderSettings)

Создает новый XmlReader экземпляр с помощью указанного средства чтения текста и параметров.

Create(TextReader)

Создает новый XmlReader экземпляр с помощью указанного средства чтения текста.

Create(XmlReader, XmlReaderSettings)

Создает новый XmlReader экземпляр с помощью указанного средства чтения XML и параметров.

Dispose()

Освобождает все ресурсы, используемые текущим экземпляром класса XmlReader.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые XmlReader и при необходимости освобождает управляемые ресурсы.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetAttribute(Int32)

При переопределении в производном классе получает значение атрибута с указанным индексом.

GetAttribute(String, String)

При переопределении в производном классе получает значение атрибута с указанным LocalName и NamespaceURI.

GetAttribute(String)

При переопределении в производном классе получает значение атрибута с указанным Name.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
GetValueAsync()

Асинхронно получает значение текущего узла.

IsName(String)

Возвращает значение, указывающее, является ли строковый аргумент допустимым XML-именем.

IsNameToken(String)

Возвращает значение, указывающее, является ли строковый аргумент допустимым маркером имени XML.

IsStartElement()

Вызывает MoveToContent() и проверяет, является ли текущий узел содержимого начальным тегом или пустым тегом элемента.

IsStartElement(String, String)

Вызывает MoveToContent() и проверяет, является ли текущий узел содержимого начальным тегом или пустым тегом элемента, а также если LocalNameNamespaceURI найденные свойства элемента соответствуют заданным строкам.

IsStartElement(String)

Вызывает MoveToContent() и проверяет, является ли текущий узел содержимого начальным тегом или пустым тегом элемента, и если Name свойство элемента найдено соответствует заданному аргументу.

LookupNamespace(String)

При переопределении в производном классе разрешает префикс пространства имен в области текущего элемента.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
MoveToAttribute(Int32)

При переопределении в производном классе перемещается к атрибуту с указанным индексом.

MoveToAttribute(String, String)

При переопределении в производном классе перемещается к атрибуту с указанным LocalName и NamespaceURI.

MoveToAttribute(String)

При переопределении в производном классе перемещается к атрибуту с указанным Name.

MoveToContent()

Проверяет, является ли текущий узел содержимым (текст без пробелов, CDATA, , ElementEndElementили EntityReferenceEndEntity) узла. Если узел не является узлом содержимого, читатель пропускает следующий узел содержимого или конец файла. Он пропускает узлы следующего типа: ProcessingInstruction, DocumentType, Comment, Whitespaceили SignificantWhitespace.

MoveToContentAsync()

Асинхронно проверяет, является ли текущий узел узлом содержимого. Если узел не является узлом содержимого, читатель пропускает следующий узел содержимого или конец файла.

MoveToElement()

При переопределении в производном классе перемещается в элемент, содержащий текущий узел атрибута.

MoveToFirstAttribute()

При переопределении в производном классе переходит к первому атрибуту.

MoveToNextAttribute()

При переопределении в производном классе переходит к следующему атрибуту.

Read()

При переопределении в производном классе считывает следующий узел из потока.

ReadAsync()

Асинхронно считывает следующий узел из потока.

ReadAttributeValue()

При переопределении в производном классе анализирует значение атрибута на один или несколько TextEntityReferenceузлов или EndEntity узлов.

ReadContentAs(Type, IXmlNamespaceResolver)

Считывает содержимое в виде объекта указанного типа.

ReadContentAsAsync(Type, IXmlNamespaceResolver)

Асинхронно считывает содержимое как объект указанного типа.

ReadContentAsBase64(Byte[], Int32, Int32)

Считывает содержимое и возвращает декодированные двоичные байты Base64.

ReadContentAsBase64Async(Byte[], Int32, Int32)

Асинхронно считывает содержимое и возвращает декодированные двоичные байты Base64.

ReadContentAsBinHex(Byte[], Int32, Int32)

Считывает содержимое и возвращает декодированные двоичные BinHex байты.

ReadContentAsBinHexAsync(Byte[], Int32, Int32)

Асинхронно считывает содержимое и возвращает декодированные двоичные BinHex байты.

ReadContentAsBoolean()

Считывает текстовое содержимое в текущей позиции в виде Boolean.

ReadContentAsDateTime()

Считывает текстовое содержимое в текущей DateTime позиции в качестве объекта.

ReadContentAsDateTimeOffset()

Считывает текстовое содержимое в текущей DateTimeOffset позиции в качестве объекта.

ReadContentAsDecimal()

Считывает текстовое содержимое в текущей Decimal позиции в качестве объекта.

ReadContentAsDouble()

Считывает текстовое содержимое в текущей позиции в виде числа с плавающей запятой двойной точности.

ReadContentAsFloat()

Считывает текстовое содержимое в текущей позиции в виде числа с плавающей запятой с одной точностью.

ReadContentAsInt()

Считывает текстовое содержимое в текущей позиции в виде 32-разрядного целого числа со знаком.

ReadContentAsLong()

Считывает текстовое содержимое в текущей позиции в виде 64-разрядного целого числа со знаком.

ReadContentAsObject()

Считывает текстовое содержимое в текущей позиции в качестве Object.

ReadContentAsObjectAsync()

Асинхронно считывает текстовое содержимое в текущей позиции в качестве Object.

ReadContentAsString()

Считывает текстовое содержимое в текущей String позиции в качестве объекта.

ReadContentAsStringAsync()

Асинхронно считывает текстовое содержимое в текущей String позиции в качестве объекта.

ReadElementContentAs(Type, IXmlNamespaceResolver, String, String)

Проверяет, соответствует ли указанный локальный URI и URI пространства имен текущему элементу, а затем считывает содержимое элемента в качестве запрошенного типа.

ReadElementContentAs(Type, IXmlNamespaceResolver)

Считывает содержимое элемента в качестве запрошенного типа.

ReadElementContentAsAsync(Type, IXmlNamespaceResolver)

Асинхронно считывает содержимое элемента в качестве запрошенного типа.

ReadElementContentAsBase64(Byte[], Int32, Int32)

Считывает элемент и декодирует содержимое Base64 .

ReadElementContentAsBase64Async(Byte[], Int32, Int32)

Асинхронно считывает элемент и декодирует содержимое Base64 .

ReadElementContentAsBinHex(Byte[], Int32, Int32)

Считывает элемент и декодирует содержимое BinHex .

ReadElementContentAsBinHexAsync(Byte[], Int32, Int32)

Асинхронно считывает элемент и декодирует содержимое BinHex .

ReadElementContentAsBoolean()

Считывает текущий элемент и возвращает содержимое в виде Boolean объекта.

ReadElementContentAsBoolean(String, String)

Проверяет, соответствует ли указанный локальный и URI пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде Boolean объекта.

ReadElementContentAsDateTime()

Считывает текущий элемент и возвращает содержимое в виде DateTime объекта.

ReadElementContentAsDateTime(String, String)

Проверяет, соответствует ли указанный локальный и URI пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде DateTime объекта.

ReadElementContentAsDecimal()

Считывает текущий элемент и возвращает содержимое в виде Decimal объекта.

ReadElementContentAsDecimal(String, String)

Проверяет, соответствует ли указанный локальный и URI пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде Decimal объекта.

ReadElementContentAsDouble()

Считывает текущий элемент и возвращает содержимое в виде числа с плавающей запятой двойной точности.

ReadElementContentAsDouble(String, String)

Проверяет, соответствует ли указанный локальный URI имени и пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде числа с плавающей запятой двойной точности.

ReadElementContentAsFloat()

Считывает текущий элемент и возвращает содержимое в виде числа с плавающей запятой с одной точностью.

ReadElementContentAsFloat(String, String)

Проверяет, соответствует ли указанный локальный URI и URI пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде числа с плавающей запятой с одной точностью.

ReadElementContentAsInt()

Считывает текущий элемент и возвращает содержимое в виде 32-разрядного целого числа со знаком.

ReadElementContentAsInt(String, String)

Проверяет, соответствует ли указанный локальный и URI пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде 32-разрядного целого числа со знаком.

ReadElementContentAsLong()

Считывает текущий элемент и возвращает содержимое в виде 64-разрядного целого числа со знаком.

ReadElementContentAsLong(String, String)

Проверяет, соответствует ли указанный локальный и URI пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде 64-разрядного целого числа со знаком.

ReadElementContentAsObject()

Считывает текущий элемент и возвращает содержимое в виде Object.

ReadElementContentAsObject(String, String)

Проверяет, соответствует ли указанный локальный и URI пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде Object.

ReadElementContentAsObjectAsync()

Асинхронно считывает текущий элемент и возвращает содержимое в виде Object.

ReadElementContentAsString()

Считывает текущий элемент и возвращает содержимое в виде String объекта.

ReadElementContentAsString(String, String)

Проверяет, соответствует ли указанный локальный и URI пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде String объекта.

ReadElementContentAsStringAsync()

Асинхронно считывает текущий элемент и возвращает содержимое в виде String объекта.

ReadElementString()

Считывает элемент только для текста. Однако вместо этого рекомендуется использовать ReadElementContentAsString() метод, так как он предоставляет более простой способ обработки этой операции.

ReadElementString(String, String)

Проверяет, соответствует ли LocalName найденный элемент и NamespaceURI свойства заданным строкам перед чтением элемента только для текста. Однако вместо этого рекомендуется использовать ReadElementContentAsString(String, String) метод, так как он предоставляет более простой способ обработки этой операции.

ReadElementString(String)

Проверяет, соответствует ли Name свойство элемента заданной строке перед чтением элемента только для текста. Однако вместо этого рекомендуется использовать ReadElementContentAsString() метод, так как он предоставляет более простой способ обработки этой операции.

ReadEndElement()

Проверяет, является ли текущий узел содержимого конечным тегом и перемещает читателя к следующему узлу.

ReadInnerXml()

При переопределении в производном классе считывает все содержимое, включая разметку, в виде строки.

ReadInnerXmlAsync()

Асинхронно считывает все содержимое, включая разметку, в виде строки.

ReadOuterXml()

При переопределении в производном классе считывает содержимое, включая разметку, представляющую этот узел и все его дочерние элементы.

ReadOuterXmlAsync()

Асинхронно считывает содержимое, включая разметку, представляющую этот узел и все его дочерние элементы.

ReadStartElement()

Проверяет, является ли текущий узел элементом и перемещает читателя к следующему узлу.

ReadStartElement(String, String)

Проверяет, является ли текущий узел содержимого элементом с заданным LocalName и NamespaceURI перемещает читателя к следующему узлу.

ReadStartElement(String)

Проверяет, является ли текущий узел содержимого элементом с заданным Name и перемещает читателя к следующему узлу.

ReadString()

При переопределении в производном классе считывает содержимое элемента или текстового узла в виде строки. Однако вместо этого рекомендуется использовать ReadElementContentAsString метод, так как он предоставляет более простой способ обработки этой операции.

ReadSubtree()

Возвращает новый XmlReader экземпляр, который можно использовать для чтения текущего узла и всех его потомков.

ReadToDescendant(String, String)

XmlReader Перемещается к следующему элементу-потомку с указанным локальным именем и URI пространства имен.

ReadToDescendant(String)

XmlReader Перемещается к следующему элементу-потомку с указанным полным именем.

ReadToFollowing(String, String)

Считывает, пока не будет найден элемент с указанным локальным именем и URI пространства имен.

ReadToFollowing(String)

Считывает до тех пор, пока не будет найден элемент с указанным полным именем.

ReadToNextSibling(String, String)

XmlReader Перемещается к следующему элементу с одноуровневыми элементами с указанным локальным именем и URI пространства имен.

ReadToNextSibling(String)

XmlReader Перемещается к следующему элементу с одинаковым именем.

ReadValueChunk(Char[], Int32, Int32)

Считывает большие потоки текста, внедренного в XML-документ.

ReadValueChunkAsync(Char[], Int32, Int32)

Асинхронно считывает большие потоки текста, внедренного в XML-документ.

ResolveEntity()

При переопределении в производном классе разрешает ссылку на сущность для EntityReference узлов.

Skip()

Пропускает дочерние элементы текущего узла.

SkipAsync()

Асинхронно пропускает дочерние элементы текущего узла.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
IDisposable.Dispose()

Описание этого элемента см. в разделе Dispose().

Применяется к

См. также раздел