XmlReader.MoveToContent Метод

Определение

Проверяет, является ли текущий узел узлом содержимого (текст без пустого пространства, CDATA, Element, EndElement, EntityReference или EndEntity).Checks whether the current node is a content (non-white space text, CDATA, Element, EndElement, EntityReference, or EndEntity) node. Если узел не является узлом содержимого, средство чтения пропускает этот узел и переходит к следующему узлу содержимого или в конец файла.If the node is not a content node, the reader skips ahead to the next content node or end of file. Пропускаются узлы следующих типов: ProcessingInstruction, DocumentType, Comment, Whitespace и SignificantWhitespace.It skips over nodes of the following type: ProcessingInstruction, DocumentType, Comment, Whitespace, or 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

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

Значение NodeType для текущего узла, найденного с помощью метода, или значение XmlNodeType.None, если средство чтения достигло конца потока входных данных.The NodeType of the current node found by the method or XmlNodeType.None if the reader has reached the end of the input stream.

Исключения

В входном потоке обнаружен неправильный XML.Incorrect XML encountered in the input stream.

Метод XmlReader вызван перед завершением предыдущей асинхронной операции.An XmlReader method was called before a previous asynchronous operation finished. В этом случае возникает исключение InvalidOperationException с сообщением "Асинхронная операция уже выполняется".In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

Примеры

Это полезно, если требуется написать код, который может пропускать случайную XML-разметку без нарушения.This is useful when you want to write code that can skip over random XML markup without breaking. Предположим, что у вас есть следующий код:For example, suppose you have the following code:

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

Этот код может выполнять следующие входы без нарушения:This code can handle the following inputs without breaking:

<price>123.4</price>  

andand

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

andand

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

andand

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

Комментарии

Если текущий узел является узлом атрибута, этот метод перемещает модуль чтения обратно в элемент, владеющий атрибутом.If the current node is an attribute node, this method moves the reader back to the element that owns the attribute.

Асинхронную версию этого метода см. в разделе MoveToContentAsync.For the asynchronous version of this method, see MoveToContentAsync.

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