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
XmlReader Před dokončením předchozí asynchronní operace byla volána metoda. V tomto případě InvalidOperationException je vyvolán zpráva "Asynchronní operace již 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.xml
jako 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
V následujícím vstupu XML, pokud je čtenář umístěn na <a>
uzlu nebo některý z jeho atributů, zavolá Skip
čtenáře <b>
do uzlu.
Pokud je čtečka umístěna na uzel typu list (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 správně formátovaný xml.
Pokud je čtenář, XmlValidatingReadertato metoda také ověří přeskočený obsah.
Implementace XmlReader
určuje, zda Skip
metoda rozšíří externí entity. Následující tabulka popisuje, jestli jsou externí entity rozbalené pro různé typy XmlReader
objektů.
Typ XmlReader | Rozbalí externí entity. |
---|---|
XmlTextReader | Ne. |
XmlReader instance vytvořená metodou Create , která čte textová data. | Ne. |
XmlReader instance vytvořená metodou Create , která čte binární data. | Neužívá se. |
Schéma, které XmlReader ověřuje instanci vytvořenou metodou Create . | Ano. |
XmlValidatingReader | Ano. |
XmlReader instance vrácená objektem XPathNavigator . | Neužívá se. |
XmlNodeReader | Ne. |
XmlReader instance zabalená kolem jiné XmlReader instance. | Závisí na implementaci podkladového objektu XmlReader. (Volá se Skip metoda na podkladovém objektu XmlReader ). |
Asynchronní verze této metody naleznete v tématu SkipAsync.