XmlReader.MoveToContent Metoda

Definice

Zkontroluje, jestli je aktuálním uzlem obsah (text bez prázdných znaků, CDATA, Element, EndElement, EntityReferencenebo EndEntity). 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, Whitespacenebo 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

Hodnota NodeType aktuálního uzlu nalezeného metodou nebo XmlNodeType.None pokud čtenář dosáhl konce vstupního datového proudu.

Výjimky

Ve vstupním streamu byl zjištěn nesprávný kód XML.

Před XmlReader dokončením předchozí asynchronní operace byla volána metoda . V tomto případě InvalidOperationException je vyvolán se zprávou "Asynchronní operace již 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->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

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ý je vlastníkem atributu.

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

Platí pro