XmlReader.Skip Metod

Definition

Hoppar över underordnade till den aktuella noden.

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

Undantag

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

I följande exempel parsas en XML-fil som börjar på den andra boknoden.

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

I exemplet används filen , 2books.xmlsom indata.

<!--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>

Kommentarer

I följande XML-indata om läsaren är placerad på <a> noden eller något av dess attribut placerar anrop Skip läsaren till <b> noden.

Om läsaren redan är placerad på en lövnod (till exempel <x> noden eller textnoden abc) är anropet Skip detsamma som att anropa Read.

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

Den här metoden söker efter välformulerad XML.

Om läsaren är en XmlValidatingReadervaliderar den här metoden även det överhoppade innehållet.

Implementeringen XmlReader avgör om metoden ska expandera externa entiteter eller inte Skip . I följande tabell beskrivs om de externa entiteterna utökas för de olika typerna av XmlReader objekt.

Typ av XmlReader Expanderar externa entiteter
XmlTextReader No.
XmlReader instans som skapats av metoden Create som läser textdata. No.
XmlReader instans som skapats av metoden Create som läser binära data. Ej tillämpbart.
Ett schema som validerar XmlReader instansen Create som skapats av metoden. Yes.
XmlValidatingReader Yes.
XmlReader instans som returneras av ett XPathNavigator objekt. Ej tillämpbart.
XmlNodeReader No.
XmlReader instans som omsluts av en annan XmlReader instans. Beror på implementeringen av den underliggande XmlReader. (Metoden Skip på den underliggande XmlReader anropas).

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

Gäller för