XmlReader.MoveToContent Method

Definition

Controlla se il nodo corrente è un nodo di contenuto (testo diverso da spazi vuoti, CDATA, Element, EndElement, EntityReference o EndEntity).Checks whether the current node is a content (non-white space text, CDATA, Element, EndElement, EntityReference, or EndEntity) node. Se il nodo non è un nodo di contenuto, il lettore passa al nodo di contenuto successivo oppure alla fine del file.If the node is not a content node, the reader skips ahead to the next content node or end of file. Ignora i nodi del tipo seguente: ProcessingInstruction, DocumentType, Comment, Whitespace o 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

Returns

XmlNodeType

Proprietà NodeType del nodo corrente trovato dal metodo o XmlNodeType.None se il lettore ha raggiunto la fine del flusso di input.The NodeType of the current node found by the method or XmlNodeType.None if the reader has reached the end of the input stream.

Exceptions

È stata trovata una stringa XML non corretta nel flusso di input.Incorrect XML encountered in the input stream.

È stato chiamato un metodo della classe XmlReader prima del completamento di un'operazione asincrona precedente.An XmlReader method was called before a previous asynchronous operation finished. In questo caso, viene generata l'eccezione InvalidOperationException con il messaggio "È già in corso un'operazione asincrona".In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

Examples

Questa operazione è utile quando si desidera scrivere codice in grado di ignorare il markup XML casuale senza interruzioni.This is useful when you want to write code that can skip over random XML markup without breaking. Ad esempio, si supponga di disporre del codice seguente: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

Questo codice è in grado di gestire gli input seguenti senza interruzioni:This code can handle the following inputs without breaking:

<price>123.4</price>  

eand

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

eand

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

eand

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

Remarks

Se il nodo corrente è un nodo attributo, questo metodo sposta di nuovo il reader sull'elemento che possiede l'attributo.If the current node is an attribute node, this method moves the reader back to the element that owns the attribute.

Per la versione asincrona di questo metodo, vedere MoveToContentAsync.For the asynchronous version of this method, see MoveToContentAsync.

Applies to