XmlReader.MoveToContent Metoda

Definice

Zkontroluje, jestli je aktuální uzel obsahem (bez prázdného textu, CDATA, Element, EndElement, EntityReferencenebo EndEntity) uzlu. Pokud uzel není uzel obsahu, čtenář přeskočí dopředu na další uzel obsahu nebo konec souboru. Přeskočí uzly následujícího typu: ProcessingInstruction, DocumentType, Comment, Whitespace, nebo 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

Návraty

Aktuální NodeType uzel nalezený metodou nebo XmlNodeType.None pokud čtenář dosáhl konce vstupního datového proudu.

Výjimky

Ve vstupním datovém proudu byla zjištěna nesprávná hodnota XML.

Před XmlReader dokončením předchozí asynchronní operace byla volána metoda. V tomto případě InvalidOperationException je vyvolán zpráva "Asynchronní operace už probíhá".

Příklady

To je užitečné, když chcete napsat kód, který může přeskočit náhodné kódy XML bez přerušení. Předpokládejme například, že máte následující kód:

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

Tento kód dokáže zpracovat následující vstupy bez přerušení:

<price>123.4</price>

a

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

a

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

a

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

Poznámky

Pokud je aktuálním uzlem uzel atributu, tato metoda přesune čtenáře zpět do elementu, který vlastní atribut.

Asynchronní verzi této metody naleznete v tématu MoveToContentAsync.

Platí pro