Udostępnij za pośrednictwem


XmlReader.MoveToContent Metoda

Definicja

Sprawdza, czy bieżący węzeł jest zawartością (tekst inny niż biały, CDATA, Element, EndElement, EntityReferencelub EndEntity) węzła. Jeśli węzeł nie jest węzłem zawartości, czytnik pomija następny węzeł zawartości lub koniec pliku. Pomija on węzły następującego typu: ProcessingInstruction, , DocumentTypeComment, Whitespacelub 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

XmlNodeType

Bieżący NodeType węzeł znaleziony przez metodę lub XmlNodeType.None jeśli czytnik osiągnął koniec strumienia wejściowego.

Wyjątki

Niepoprawny kod XML napotkany w strumieniu wejściowym.

Metoda XmlReader została wywołana przed zakończeniem poprzedniej operacji asynchronicznej. W tym przypadku InvalidOperationException jest zgłaszany komunikat "Operacja asynchroniczna jest już w toku".

Przykłady

Jest to przydatne, gdy chcesz napisać kod, który może pominąć losowe znaczniki XML bez przerywania. Załóżmy na przykład, że masz następujący kod:

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ługiwać następujące dane wejściowe bez przerywania pracy:

<price>123.4</price>

oraz

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

oraz

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

oraz

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

Uwagi

Jeśli bieżący węzeł jest węzłem atrybutu, ta metoda przenosi czytelnika z powrotem do elementu, który jest właścicielem atrybutu.

Aby uzyskać asynchroniczną wersję tej metody, zobacz MoveToContentAsync.

Dotyczy