XmlReader.Skip Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přeskočí podřízené položky aktuálního uzlu.
public:
virtual void Skip();
public virtual void Skip();
abstract member Skip : unit -> unit
override this.Skip : unit -> unit
Public Overridable Sub Skip ()
Výjimky
Před XmlReader dokončením předchozí asynchronní operace byla volána metoda. V tomto případě InvalidOperationException je vyvolán zpráva "Asynchronní operace už probíhá".
Příklady
Následující příklad analyzuje soubor XML začínající na druhém uzlu knihy.
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
Příklad používá soubor , 2books.xmljako vstup.
<!--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>
Poznámky
Pokud je čtečka umístěna na <a> uzlu nebo v některém z jeho atributů, umístí Skip čtečku do <b> uzlu v následujícím vstupu XML.
Pokud je čtečka umístěna na listovém uzlu již (například <x> uzel nebo textový uzel abc), volání Skip je stejné jako volání Read.
<a name="bob" age="123">
<x/>abc<y/>
</a>
<b>
...
</b>
Tato metoda kontroluje formát XML ve správném formátu.
Pokud je čtenářem XmlValidatingReader, tato metoda také ověří přeskočený obsah.
Implementace XmlReader určuje, zda Skip metoda rozbalí externí entity. Následující tabulka popisuje, zda jsou externí entity rozbalené pro různé typy XmlReader objektů.
| Typ třídy XmlReader | Rozbalí externí entity. |
|---|---|
| XmlTextReader | No. |
| XmlReader instance vytvořená metodou Create , která čte textová data. | No. |
| XmlReader instance vytvořená metodou Create , která čte binární data. | Nevztahuje se. |
| Schéma, které XmlReader ověřuje instanci vytvořenou metodou Create . | Yes. |
| XmlValidatingReader | Yes. |
| XmlReader instance vrácená objektem XPathNavigator . | Nevztahuje se. |
| XmlNodeReader | No. |
| XmlReader instance zabalená kolem jiné XmlReader instance. | Závisí na implementaci podkladového XmlReaderobjektu . (Metoda Skip na podkladovém objektu XmlReader je volána). |
Asynchronní verzi této metody naleznete v tématu SkipAsync.