XmlReader.Skip Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.