XmlReader.MoveToContent Metoda

Definicja

Sprawdza, czy bieżący węzeł jest zawartością (tekst niebędący odstępem, CDATA, Element, EndElement, EntityReferencelub EndEntity).Checks whether the current node is a content (non-white space text, CDATA, Element, EndElement, EntityReference, or EndEntity) node. Jeśli węzeł nie jest węzłem zawartości, czytnik przechodzi do następnego węzła zawartości lub końca pliku.If the node is not a content node, the reader skips ahead to the next content node or end of file. Powoduje to pominięcie węzłów następującego typu: ProcessingInstruction, DocumentType, Comment, Whitespacelub 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

Zwraca

NodeType bieżącego węzła znalezionego przez metodę lub XmlNodeType.None, jeśli czytnik osiągnął koniec strumienia wejściowego.The NodeType of the current node found by the method or XmlNodeType.None if the reader has reached the end of the input stream.

Wyjątki

Napotkano nieprawidłowy kod XML w strumieniu wejściowym.Incorrect XML encountered in the input stream.

Metoda XmlReader została wywołana przed ukończeniem poprzedniej operacji asynchronicznej.An XmlReader method was called before a previous asynchronous operation finished. W takim przypadku InvalidOperationException jest generowany z komunikatem "asynchroniczna operacja jest już w toku".In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

Przykłady

Jest to przydatne, gdy chcesz napisać kod, który może pominąć losowe znaczniki XML bez przerywania.This is useful when you want to write code that can skip over random XML markup without breaking. Załóżmy na przykład, że masz następujący kod: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

Ten kod może obsłużyć następujące dane wejściowe bez przerywania:This code can handle the following inputs without breaking:

<price>123.4</price>  

iand

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

iand

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

iand

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

Uwagi

Jeśli bieżący węzeł jest węzłem atrybutu, ta metoda przenosi czytnik z powrotem do elementu, który jest właścicielem atrybutu.If the current node is an attribute node, this method moves the reader back to the element that owns the attribute.

Aby uzyskać asynchroniczną wersję tej metody, zobacz MoveToContentAsync.For the asynchronous version of this method, see MoveToContentAsync.

Dotyczy