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


Чтение содержимого

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

ПримечаниеПримечание

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

Свойство Value

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

Тип узла

Значение

Attribute

Значение атрибута.

CDATA

Содержимое раздела CDATA.

Comment

Содержимое комментария.

DocumentType

Внутреннее подмножество.

ProcessingInstruction

Полное содержимое, исключая конечное приложение.

SignificantWhitespace

Пробелы между разметкой в модели смешанного содержимого.

Text

Содержимое текстового узла.

Whitespace

Пробелы между разметкой.

XmlDeclaration

Содержимое декларации.

Все остальные типы узлов

Пустая строка.

Метод ReadString

Метод ReadString возвращает содержимое элемента или текстового узла в виде строки.

Если объект XmlReader расположен в элементе, метод ReadString объединяет весь текст, значащие и прочие пробелы, а также узлы раздела CDATA и возвращает объединенные данные в качестве содержимого элемента. Модуль чтения останавливается, если обнаруживает элемент разметки. Это может случиться в модели смешанного содержимого или во время считывания закрывающего тега элемента.

Если объект XmlReader расположен в текстовом узле, метод ReadString выполняет такое же объединение текста, пробелов и узлов раздела CDATA. Модуль останавливается на первом узле, который имеет тип, отличный от упомянутых ранее. Если модуль чтения расположен в текстовом узле атрибута, метод ReadString работает так же, как в случае, когда модуль чтения располагается в открывающем теге элемента, и возвращает все объединенные текстовые узлы элемента.

ПримечаниеПримечание

Метод ReadString останавливается на обработке инструкций и комментариев,но не пропускает их.

Метод ReadInnerXml

Метод ReadInnerXml возвращает все содержимое текущего узла, включая разметку. Текущий узел (открывающий тег) и соответствующий ему конечный узел (закрывающий тег) не возвращаются. Например, если выбрана XML-строка <node>this<child id="123"/></node>, метод ReadInnerXml вернет this<child id="123"/>.

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

Тип узла

Исходное

положение

XML-фрагмент

Return

значение

Положение

после

Element

В открывающем теге item1.

<item1>text1</item1><item2>text2</item2>

text1

В открывающем теге item2.

Attribute

В узле атрибута attr1.

<item attr1="val1" attr2="val2">text</item>

val1

Остается в узле атрибута attr1.

Если модуль чтения располагается в конечном узле, вызов метода ReadInnerXml будет равносилен вызову метода Read.

Метод ReadOuterXml

Метод ReadOuterXml возвращает все XML-содержимое (включая разметку) текущего узла и всех его дочерних узлов. Метод работает аналогично методу ReadInnerXml, но также возвращает открывающий и закрывающий теги.

Согласно значениям в таблице выше, если модуль чтения расположен в открывающем теге item1, метод ReadOuterXml возвращает <item1>text1</item1>. Если модуль чтения расположен в узле атрибута attr1, метод ReadOuterXml возвращает attr1="val1".

См. также

Основные понятия

Чтение элементов

Чтение атрибутов

Чтение XML с помощью XmlReader