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
Возвращаемое значение
Значение 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.