XmlReader.Skip Metoda

Definicja

Pomija elementy podrzędne bieżącego węzła.Skips the children of the current node.

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

Wyjątki

Metoda XmlReader została wywołana przed ukończeniem poprzedniej operacji asynchronicznej.An XmlReader method was called before a previous asynchronous operation finished. W takim przypadku InvalidOperationException jest generowany z komunikatem "asynchroniczna operacja jest już w toku".In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

Przykłady

Poniższy przykład analizuje plik XML, zaczynając od drugiego węzła książki.The following example parses an XML file starting on the second book node.

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

W przykładzie jest użyty plik 2books.xmljako dane wejściowe.The example uses the file, 2books.xml, as 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>

Uwagi

W poniższych danych wejściowych XML, jeśli czytnik znajduje się w węźle <a> lub w dowolnym z jego atrybutów, wywołanie Skip położenia czytnika do węzła <b>.In the following XML input if the reader is positioned on the <a> node or any of its attributes, calling Skip positions the reader to the <b> node.

Jeśli czytnik jest umieszczony w węźle liścia już (takim jak węzeł <x> lub węzeł tekstu abc), wywoływanie Skip jest takie samo jak wywołanie Read.If the reader is positioned on a leaf node already (such as the <x> node or the text node abc), calling Skip is the same as calling Read.

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

Ta metoda sprawdza poprawnie sformułowany kod XML.This method checks for well-formed XML.

Jeśli czytnik jest XmlValidatingReader, ta metoda również sprawdza poprawność pominiętej zawartości.If the reader is an XmlValidatingReader, this method also validates the skipped content.

Implementacja XmlReader określa, czy Skip metoda rozszerza jednostki zewnętrzne.The XmlReader implementation determines whether or not the Skip method will expand external entities. W poniższej tabeli opisano, czy zewnętrzne jednostki są rozwinięte dla różnych typów XmlReader obiektów.The following table describes whether the external entities are expanded for the various types of XmlReader objects.

Typ elementu XmlReaderType of XmlReader Rozwija jednostki zewnętrzneExpands external entities
XmlTextReader Nie.No.
XmlReader wystąpienie utworzone przez metodę Create, która odczytuje dane tekstowe.XmlReader instance created by the Create method that is reading text data. Nie.No.
XmlReader wystąpienie utworzone przez metodę Create, która odczytuje dane binarne.XmlReader instance created by the Create method that is reading binary data. Nie dotyczy.Not applicable.
Schemat sprawdzający poprawność XmlReader wystąpienia utworzonego przez metodę Create.A schema validating XmlReader instance created by the Create method. Tak.Yes.
XmlValidatingReader Tak.Yes.
wystąpienie XmlReader zwrócone przez obiekt XPathNavigator.XmlReader instance returned by a XPathNavigator object. Nie dotyczy.Not applicable.
XmlNodeReader Nie.No.
XmlReader wystąpienia opakowane wokół innego wystąpienia XmlReader.XmlReader instance wrapped around another XmlReader instance. Zależy od implementacji bazowego XmlReader.Depends on the implementation of the underlying XmlReader. (Metoda Skip na podstawowym XmlReader jest wywoływana).(The Skip method on the underlying XmlReader is called).

Aby uzyskać asynchroniczną wersję tej metody, zobacz SkipAsync.For the asynchronous version of this method, see SkipAsync.

Dotyczy