XmlReader.MoveToContent Metod

Definition

Kontrollerar om den aktuella noden är ett innehåll (icke-blankstegstext, CDATA, Element, EndElement, EntityReferenceeller EndEntity) nod. Om noden inte är en innehållsnod hoppar läsaren vidare till nästa innehållsnod eller filslut. Den hoppar över noder av följande typ: ProcessingInstruction, DocumentType, Comment, Whitespace, eller 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

Returer

Den NodeType aktuella noden som hittas av metoden eller XmlNodeType.None om läsaren har nått slutet av indataströmmen.

Undantag

Felaktig XML påträffades i indataströmmen.

En XmlReader metod anropades innan en tidigare asynkron åtgärd slutfördes. I det här fallet InvalidOperationException genereras meddelandet "En asynkron åtgärd pågår redan".

Exempel

Detta är användbart när du vill skriva kod som kan hoppa över slumpmässig XML-kod utan att bryta. Anta till exempel att du har följande kod:

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

Den här koden kan hantera följande indata utan att bryta:

<price>123.4</price>

och

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

och

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

och

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

Kommentarer

Om den aktuella noden är en attributnod flyttar den här metoden tillbaka läsaren till det element som äger attributet.

Den asynkrona versionen av den här metoden finns i MoveToContentAsync.

Gäller för