XmlReader.Skip Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Omite los nodos secundarios del nodo actual.
public:
virtual void Skip();
public virtual void Skip ();
abstract member Skip : unit -> unit
override this.Skip : unit -> unit
Public Overridable Sub Skip ()
Excepciones
Se llamó un método XmlReader antes de que se termine una operación asincrónica anterior. En este caso, se genera InvalidOperationException con el mensaje “Ya hay una operación asincrónica en curso”.
Ejemplos
En el ejemplo siguiente se analiza un archivo XML a partir del segundo nodo de libro.
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
En el ejemplo se usa el archivo , 2books.xml
como entrada.
<!--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>
Comentarios
En la siguiente entrada XML si el lector está situado en el <a>
nodo o en cualquiera de sus atributos, al llamar a Skip
coloca el lector en el <b>
nodo.
Si el lector ya está colocado en un nodo hoja (como el <x>
nodo o el nodo abc
de texto), llamar Skip
a es el mismo que llamar a Read.
<a name="bob" age="123">
<x/>abc<y/>
</a>
<b>
...
</b>
Este método comprueba si hay XML bien formado.
Si el lector es , XmlValidatingReadereste método también valida el contenido omitido.
La XmlReader
implementación determina si el Skip
método expandirá o no las entidades externas. En la tabla siguiente se describe si las entidades externas se expanden para los distintos tipos de XmlReader
objetos.
Tipo de XmlReader | Expande entidades externas |
---|---|
XmlTextReader | No. |
XmlReader instancia creada por el Create método que está leyendo datos de texto. | No. |
XmlReader instancia creada por el Create método que está leyendo datos binarios. | No es aplicable. |
Una instancia de validación XmlReader de esquema creada por el Create método . | Sí. |
XmlValidatingReader | Sí. |
XmlReader instancia devuelta por un XPathNavigator objeto . | No es aplicable. |
XmlNodeReader | No. |
XmlReader instancia encapsulada alrededor de otra XmlReader instancia. | Depende de la implementación del subyacente XmlReader. (Se Skip llama al método en el subyacente XmlReader ). |
Para obtener la versión asincrónica de este método, vea SkipAsync.