Condividi tramite


XmlReader.Skip Metodo

Definizione

Ignora gli elementi figlio del nodo corrente.

public:
 virtual void Skip();
public virtual void Skip ();
abstract member Skip : unit -> unit
override this.Skip : unit -> unit
Public Overridable Sub Skip ()

Eccezioni

È stato chiamato un metodo della classe XmlReader prima del completamento di un'operazione asincrona precedente. In questo caso, viene generata l'eccezione InvalidOperationException con il messaggio "È già in corso un'operazione asincrona".

Esempio

Nell'esempio seguente viene analizzato un file XML a partire dal secondo nodo del libro.

using (XmlReader reader = XmlReader.Create("2books.xml")) {

  // Move the reader to the second book node.
  reader.MoveToContent();
  reader.ReadToDescendant("book");
  reader.Skip(); //Skip the first book.

  // Parse the file starting with the second book node.
  do {
     switch (reader.NodeType) {
        case XmlNodeType.Element:
           Console.Write("<{0}", reader.Name);
           while (reader.MoveToNextAttribute()) {
               Console.Write(" {0}='{1}'", reader.Name, reader.Value);
           }
           Console.Write(">");
           break;
        case XmlNodeType.Text:
           Console.Write(reader.Value);
           break;
        case XmlNodeType.EndElement:
           Console.Write("</{0}>", reader.Name);
           break;
     }
  }  while (reader.Read());
}
Using reader As XmlReader = XmlReader.Create("2books.xml")

  ' Move the reader to the second book node.
  reader.MoveToContent()
  reader.ReadToDescendant("book")
  reader.Skip() 'Skip the first book.
  ' Parse the file starting with the second book node.
  Do
    Select Case reader.NodeType
      Case XmlNodeType.Element
        Console.Write("<{0}", reader.Name)
        While reader.MoveToNextAttribute()
            Console.Write(" {0}='{1}'", reader.Name, reader.Value)
        End While
        Console.Write(">")
      Case XmlNodeType.Text
        Console.Write(reader.Value)
      Case XmlNodeType.EndElement
        Console.Write("</{0}>", reader.Name)
    End Select
  Loop While reader.Read()

End Using

Nell'esempio viene usato il file, , 2books.xmlcome input.

<!--sample XML fragment-->
<bookstore>
  <book genre='novel' ISBN='10-861003-324'>
    <title>The Handmaid's Tale</title>
    <price>19.95</price>
  </book>
  <book genre='novel' ISBN='1-861001-57-5'>
    <title>Pride And Prejudice</title>
    <price>24.95</price>
  </book>
</bookstore>

Commenti

Nell'input XML seguente se il lettore è posizionato sul <a> nodo o uno dei relativi attributi, chiamando Skip il lettore al <b> nodo.

Se il lettore è posizionato su un nodo foglia già (ad esempio il nodo o il <x> nodo di testo ), la chiamata è uguale a quella della chiamata ReadSkip .abc

<a name="bob" age="123">
 <x/>abc<y/>
</a>
<b>
...
</b>

Questo metodo verifica la presenza di XML ben formato.

Se il lettore è un XmlValidatingReaderoggetto , questo metodo convalida anche il contenuto ignorato.

L'implementazione XmlReader determina se il Skip metodo espanderà le entità esterne. La tabella seguente descrive se le entità esterne vengono espanse per i vari tipi di XmlReader oggetti.

Tipo di XmlReader Espande le entità esterne
XmlTextReader No.
XmlReader istanza creata dal Create metodo che legge i dati di testo. No.
XmlReader istanza creata dal Create metodo che legge i dati binari. Non applicabile.
Istanza di convalida dello XmlReader schema creata dal Create metodo . Sì.
XmlValidatingReader Sì.
XmlReader istanza restituita da un XPathNavigator oggetto. Non applicabile.
XmlNodeReader No.
XmlReader istanza sottoposta a wrapping intorno a un'altra XmlReader istanza. Dipende dall'implementazione dell'oggetto sottostante XmlReader. (Viene chiamato il Skip metodo sul sottostante XmlReader ).

Per la versione asincrona di questo metodo, vedere SkipAsync.

Si applica a