ReadSubtree Método
TOC
Collapse the table of content
Expand the table of content
Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

XPathNavigator.ReadSubtree (Método) ()

 

Devuelve un objeto XmlReader que contiene el nodo actual y sus nodos secundarios.

Espacio de nombres:   System.Xml.XPath
Ensamblado:  System.Xml (en System.Xml.dll)

public virtual XmlReader ReadSubtree()

Valor devuelto

Type: System.Xml.XmlReader

Objeto XmlReader que contiene el nodo actual y sus nodos secundarios.

Exception Condition
InvalidOperationException

XPathNavigator no está colocado en un nodo de elemento o en el nodo raíz.

When the T:System.Xml.XmlReader object is created with the current node and its child nodes, the T:System.Xml.XmlReader object's P:System.Xml.XmlReader.ReadState property is set to F:System.Xml.ReadState.Initial. When the T:System.Xml.XmlReader object's M:System.Xml.XmlReader.Read method is called for the first time, the T:System.Xml.XmlReader is moved to the current node of the T:System.Xml.XPath.XPathNavigator. The new T:System.Xml.XmlReader object continues to read until the end of the XML tree is reached. At this point, the M:System.Xml.XmlReader.Read method returns false and the T:System.Xml.XmlReader object's P:System.Xml.XmlReader.ReadState property is set to F:System.Xml.ReadState.EndOfFile.

System_CAPS_noteNota

Changing the position of the T:System.Xml.XmlReader object does not affect the position of the T:System.Xml.XPath.XPathNavigator.

Namespace declarations for the in-scope namespaces of the current node are not inserted into the XML stream provided to the T:System.Xml.XmlReader object.

System_CAPS_noteNota

This behavior differs from the M:System.Xml.XPath.XPathNavigator.WriteSubtree(System.Xml.XmlWriter) method.

This method creates the T:System.Xml.XmlReader object with specific reader settings, and the module that uses this method has no control over those settings. For example, the reader returned by this method prohibits processing Data Type Definitions (DTDs). If the reader attempts to read a file that uses a DTD, it will throw an error, T:System.Xml.XmlException. The message for the exception will be Unexpected DTD declaration.

You can change this behavior by implementing a custom T:System.Xml.XmlResolver that returns an T:System.Xml.XmlReader with the desired T:System.Xml.XmlReaderSettings.

The following example illustrates using the M:System.Xml.XPath.XPathNavigator.ReadSubtree method on the first book element of the contosoBooks.xml file.

XPathDocument document = new XPathDocument("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

navigator.MoveToChild("bookstore", "http://www.contoso.com/books");
navigator.MoveToChild("book", "http://www.contoso.com/books");

XmlReader reader = navigator.ReadSubtree();

while (reader.Read())
{
    Console.WriteLine(reader.ReadInnerXml());
}

reader.Close();

The example takes the contosoBooks.xml file as an input.


<?xml version="1.0" encoding="utf-8" ?> <bookstore xmlns="http://www.contoso.com/books"> <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0"> <title>The Autobiography of Benjamin Franklin</title> <author> <first-name>Benjamin</first-name> <last-name>Franklin</last-name> </author> <price>8.99</price> </book> <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2"> <title>The Confidence Man</title> <author> <first-name>Herman</first-name> <last-name>Melville</last-name> </author> <price>11.99</price> </book> <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6"> <title>The Gorgias</title> <author> <name>Plato</name> </author> <price>9.99</price> </book> </bookstore>

Universal Windows Platform
Disponible desde 10
.NET Framework
Disponible desde 2.0
Silverlight
Disponible desde 4.0
Volver al principio
Mostrar:
© 2016 Microsoft