XmlReader.MoveToContent Метод

Определение

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

public:
 virtual System::Xml::XmlNodeType MoveToContent();
public virtual System.Xml.XmlNodeType MoveToContent ();
abstract member MoveToContent : unit -> System.Xml.XmlNodeType
override this.MoveToContent : unit -> System.Xml.XmlNodeType
Public Overridable Function MoveToContent () As XmlNodeType

Возвращаемое значение

XmlNodeType

Значение NodeType для текущего узла, найденного с помощью метода, или значение XmlNodeType.None, если средство чтения достигло конца потока входных данных.

Исключения

В входном потоке обнаружен неправильный XML.

Метод XmlReader вызван перед завершением предыдущей асинхронной операции. В этом случае возникает исключение InvalidOperationException с сообщением "Асинхронная операция уже выполняется".

Примеры

Это полезно, если вы хотите написать код, который может пропускать случайную разметку XML без нарушения. Предположим, что у вас есть следующий код:

if ( reader->MoveToContent() == XmlNodeType::Element &&
   reader->Name->Equals( "price" ) )
{
   _price = reader->ReadString();
}
if (reader.MoveToContent() == XmlNodeType.Element && reader.Name == "price")
 {
    _price = reader.ReadString();
 }
If reader.MoveToContent() = XmlNodeType.Element And reader.Name = "price" Then
    _price = reader.ReadString()
End If

Этот код может обрабатывать следующие входные данные без нарушения:

<price>123.4</price>

и

<?xml version="1.0"><!DOCTYPE price SYSTEM
  "abc"><price>123.4</price>

и

<?xml version="1.0"><!DOCTYPE price SYSTEM "abc"
  [<!ENTITY p
  "123.4">]><price>&p;</price>

и

<!-- some test comment --><?processing
  instruction?><price>123.4</price>

Комментарии

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

Асинхронную версию этого метода см. в разделе MoveToContentAsync.

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