Поделиться через


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 Namespace) узла, на котором расположено средство чтения.

NameTable

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

NodeType

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

Prefix

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

QuoteChar

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

ReadState

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

SchemaInfo

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

Settings

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

Value

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

ValueType

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

XmlLang

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

XmlSpace

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

Методы

Close()

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

Create(Stream)

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

Create(Stream, XmlReaderSettings)

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

Create(Stream, XmlReaderSettings, String)

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

Create(Stream, XmlReaderSettings, XmlParserContext)

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

Create(String)

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

Create(String, XmlReaderSettings)

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

Create(String, XmlReaderSettings, XmlParserContext)

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

Create(TextReader)

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

Create(TextReader, XmlReaderSettings)

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

Create(TextReader, XmlReaderSettings, String)

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

Create(TextReader, XmlReaderSettings, XmlParserContext)

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

Create(XmlReader, XmlReaderSettings)

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

Dispose()

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

Dispose(Boolean)

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

Equals(Object)

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

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

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

GetAttribute(String)

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

GetAttribute(String, String)

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

GetHashCode()

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

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

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

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

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

IsName(String)

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

IsNameToken(String)

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

IsStartElement()

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

IsStartElement(String)

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

IsStartElement(String, String)

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

LookupNamespace(String)

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

MemberwiseClone()

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

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

Когда переопределено в производном классе, переходит к атрибуту с указанным индексом.

MoveToAttribute(String)

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

MoveToAttribute(String, String)

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

MoveToContent()

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

MoveToContentAsync()

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

MoveToElement()

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

MoveToFirstAttribute()

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

MoveToNextAttribute()

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

Read()

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

ReadAsync()

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

ReadAttributeValue()

При переопределении в производном классе разбирает значение атрибута в один или более узлов Text, EntityReference или 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)

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

ReadElementContentAs(Type, IXmlNamespaceResolver, String, String)

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

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 локального имени и пространства имен с URI текущего элемента, затем считывает текущий элемент и возвращает содержимое как объект Boolean.

ReadElementContentAsDateTime()

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

ReadElementContentAsDateTime(String, String)

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

ReadElementContentAsDecimal()

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

ReadElementContentAsDecimal(String, String)

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

ReadElementContentAsDouble()

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

ReadElementContentAsDouble(String, String)

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

ReadElementContentAsFloat()

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

ReadElementContentAsFloat(String, String)

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

ReadElementContentAsInt()

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

ReadElementContentAsInt(String, String)

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

ReadElementContentAsLong()

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

ReadElementContentAsLong(String, String)

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

ReadElementContentAsObject()

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

ReadElementContentAsObject(String, String)

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

ReadElementContentAsObjectAsync()

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

ReadElementContentAsString()

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

ReadElementContentAsString(String, String)

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

ReadElementContentAsStringAsync()

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

ReadElementString()

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

ReadElementString(String)

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

ReadElementString(String, String)

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

ReadEndElement()

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

ReadInnerXml()

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

ReadInnerXmlAsync()

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

ReadOuterXml()

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

ReadOuterXmlAsync()

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

ReadStartElement()

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

ReadStartElement(String)

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

ReadStartElement(String, String)

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

ReadString()

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

ReadSubtree()

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

ReadToDescendant(String)

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

ReadToDescendant(String, String)

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

ReadToFollowing(String)

Выполняет чтение до обнаружения элемента с указанным полным именем.

ReadToFollowing(String, String)

Выполняет чтение до обнаружения указанных локального имени и URI пространства имен.

ReadToNextSibling(String)

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

ReadToNextSibling(String, String)

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

ReadValueChunk(Char[], Int32, Int32)

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

ReadValueChunkAsync(Char[], Int32, Int32)

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

ResolveEntity()

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

Skip()

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

SkipAsync()

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

ToString()

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

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

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

IDisposable.Dispose()

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

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

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